mfc相关内容

MFC中多行静态文本的垂直居中

如何使用文本自动换行(多行)使结果在控件的矩形中垂直居中? 我试图解决的问题是:我在CComboBox旁边有一个CStatic控件,它根据选择更新信息文本。此文本可以是短的,也可以是长的,这要求CStatic有时使用多行,有时不使用。我希望信息文本与CComboBox垂直居中对齐。 现在的问题是: 如果我只将CStatic文本行设置为1行高,它看起来适合单行文本,但多行不适合并且不显 ..
发布时间:2022-05-12 10:56:31 C/C++开发

如何知道何时调用了CWnd&;的Create函数?

我编写了一个包装网格控件的类。 我希望在通过调用Create Function创建自定义网格类时对其进行初始化。 有没有什么方法可以赶上这个事件? 推荐答案 是,如果使用cwnd:Create或cwd:CreateEx,则可以使用: 捕获Win32事件 afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct ); 参 ..
发布时间:2022-04-17 18:28:54 C/C++开发

区分单击和双击C++

我有一个应用程序,在该应用程序中,双击图像视图区域可以更改图像视图的布局。同样,在单击时,将在图像上放置一个点。 我的问题是,当双击时,这两个功能都可以工作。 我当然知道,当双击发生时,控件首先转到LButtonDown。我不希望在双击时圆点功能起作用。一个多星期以来,我一直在努力解决这个问题。请帮帮忙。 推荐答案 解决此问题的最简单方法是构建用于处理鼠标单击的finite-st ..
发布时间:2022-04-09 22:36:25 C/C++开发

在MFC滑块控件中有没有一种方法,当我移动拇指时,它会在默认背景色上填充滑块的背景色

我正在尝试在mfc中创建自定义滑块。是否有办法使我在移动滑块时,背景颜色会根据滑块拇指在默认背景颜色上的位置而变化,就像.Net中的默认.Net滑块一样。 void rogreen::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add you ..
发布时间:2022-02-24 22:03:19 C/C++开发

是否可以创建";外部";迭代器类(即:不访问原始数据类型)

我正在处理一个项目,在该项目中为MFC类CArray创建迭代器类型会很有用。 由于CArray是MFC库的一部分,我无权访问此对象。 我还没有完全考虑创建迭代器,但据我所知,人们通常会将迭代器类型创建为迭代器对应的类类型的成员。换句话说,需要访问类本身。 是否可以为类创建迭代器&外部&q;。IE:CArray类的外部。 推荐答案 CArray为连续容器。因此,简单指针是此 ..
发布时间:2022-02-23 20:41:16 C/C++开发

编辑 rc 文件,然后在 VC 对话框向导中打开它时,由于 TBS_NOTIFYBEFOREMOVE 出现错误 RC2104

我有一个基于 VC++/MFC 对话框的项目.在这些对话框中,我使用了一些“移动前通知"为 true 的滑块.有时,我更喜欢在文本编辑器中手动编辑相关的 .rc 文件,而不是使用 VS 对话框向导来编辑它们. 问题是,在编辑 .rc 文件后,当我尝试再次在 VS 向导中打开对话框时,我收到此错误:“错误 RC2104:未定义的关键字或键名:TBS_NOTIFYBEFOREMOVE"我仍然可以 ..
发布时间:2022-01-24 17:56:46 C/C++开发

如何处理 Microsoft Visual C++ ( MFC ) 中特定控件的鼠标悬停事件?

在我的应用程序中,我需要处理鼠标悬停事件来更改按钮的背景.使用 MFC 类向导,我在该项目的事件列表中找不到鼠标悬停条目.我尝试使用 PreTranslateMessage,但它不起作用.我该如何处理该事件? 解决方案 默认不生成鼠标悬停事件.您必须通过调用 TrackMouseEvent 来请求它们正确填充 TRACKMOUSEEVENT 结构: TRACKMOUSEEVENT tme ..
发布时间:2022-01-22 22:51:09 C/C++开发

你如何使用 MFC CScrollbar 控件?

我已将水平 CScrollBar 控件拖放到对话框中.你到底是怎么用它的?? 我尝试将手柄向右移动,但它直接跳回左侧.所以我想我可能需要设置范围.我调用了 SetScrollRange(0, 100),它仍然做同样的事情.我在谷歌上找不到任何有帮助的例子——所有滚动条引用似乎都是指使用视图类等,但这不是我想做的. 我想要做的就是移动手柄并收到一条包含一些描述的通知消息,我该怎么做(请) ..
发布时间:2022-01-12 15:28:40 C/C++开发

Mfc CComboBoxEx - 如何更改背景颜色

我有一个派生自 CComboBoxEx 的类,我正在尝试更改背景颜色.我在想它会像 ComboBox 一样工作(使用 SetBkColor 函数),但它不会改变背景颜色. 这是我尝试过的: BEGIN_MESSAGE_MAP(CMyComboBoxEx, CComboBoxEx)ON_WM_CTLCOLOR()END_MESSAGE_MAP()无效 CMyComboBoxEx::SetB ..
发布时间:2022-01-12 15:28:23 C/C++开发

如何在基于 MFC 对话框的应用程序中为复选框捕获 MouseMove 事件?

我的应用程序是一个基于 VC6 MFC 对话框的应用程序,具有多个属性页. 我必须在控件上捕获 mousemove 事件,例如 Checkbox. 如何在 MFC 中的复选框上捕获 mousemove 事件? 解决方案 感谢您的回复.我找到了为我的应用获取 mousemove 事件的方法. WM_SETCURSOR windows 消息获取鼠标移动.它返回控件和对话框的 ..
发布时间:2022-01-12 15:28:13 C/C++开发

如何在 MFC 中获取子菜单?

我正在尝试获取一个子菜单,以便在它显示之前对其进行更改. 所以我为我的窗口创建了一个 OnInitMenu() 处理程序.我曾计划使用 pMenu->GetMenuItemInfo() 来获取子菜单. 但是,这似乎不起作用.为了找到我想要的菜单,我必须提供菜单命令 ID(我不认为硬编码项目位置令人满意).但是打开子菜单的菜单项没有命令 ID.我可以得到一个存在于该子菜单中的菜单命令,但 ..
发布时间:2022-01-12 15:28:05 C/C++开发

CDialog 和 CDialogEx 的区别

CDialog 和 CDialogEx 有什么区别?我决定使用 CDialog,因为如果 Dlg 派生自 CDialogEx,我无法将 m_pMainWnd 分配给 Dlg. BOOL CPreparationApp::InitInstance(){MyClass2 Dlg;//派生自CDialogm_pMainWnd = &Dlg;Dlg.DoModal();返回真;} 不使用表单向导提供的 ..
发布时间:2022-01-12 15:27:57 C/C++开发

为什么控制面板的 PIDL 会不同?

我认为应该这样做 this 比较 PIDL:IShellFolder::CompareIDs(). 特别是,我试图检测给定的绝对 PIDL(或相对)是否是控制面板的. 但是,在实践中,我最终得到了两个 IShellFolder::CompareIDs() 声称不相等的 PIDL,当它们应该相等时(查看每个的 GetDisplayName(),我可以看到我们确实在查看控制面板). ..
发布时间:2022-01-12 15:27:50 C/C++开发

CWnd::CreateDlgIndirect 离开 m_hWnd==NULL

我正在处理的对话框没有显示,使用: CWnd::CreateDlgIndirect(LPCDLGTEMPLATE lpDialogTemplate,CWnd* pParentWnd, HINSTANCE hInst) 对 CreateDlgIndirect 的调用在一个 lon-used 基类中,它有效地获取资源文件中对话框模板的 IDD - 它适用于许多其他对话框,但我看不出我的对话框有什么 ..
发布时间:2022-01-12 15:27:41 C/C++开发

MFC 应用程序标题

我正在使用 MFC 创建一个简单的时钟应用程序.我的应用程序标题如下所示:“CLOCK - [CLOCK1]".如何将其重置为简单的“时钟"?仅供参考,我已启用文档视图架构. 解决方案 把这个 MFC 标题覆盖: void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle){SetWindowText(L"CLOCK");} ..
发布时间:2022-01-12 15:27:32 C/C++开发

属性表 (MFC) 的 RTL 布局问题

我正在阿拉伯语 Windows 中运行我的英语应用程序.它包含一个属性表 UI (MFC).一切似乎都很好(从左到右或 LTR),除了从右到左或 RTL 的按钮(确定、取消、应用和帮助).但是如何使按钮 LTR? 我玩过 MSDN 上提到的 PSH_RTLREADING 标志,但它只处理窗口标题,而不处理按钮. 此外,我注意到 这个讨论 但没有好的解决方案. 解决方案 由Ray ..
发布时间:2022-01-12 15:27:26 C/C++开发

如何找到激活时打开给定 HMENU 的菜单项(如果有)?

我想用原型实现一个函数 /* 定位导致给定菜单“mnu"的应用程序菜单项* 出现.* @return 如果给定的菜单'mnu'被另一个菜单项打开,则返回true,false* 如果不.*/bool getParentMenuItem(HMENU mnu, HMENU *parentMenu, int *parentMenuIdx); 给定一个 HMENU 句柄,我希望能够找出应用程序中的哪个菜 ..
发布时间:2022-01-12 15:27:17 C/C++开发

如何将 MFC 支持添加到现有的 Win32 C++ 项目?

我正在创建一个使用 Qt 创建 GUI 的 C++ 应用程序.但是,我需要使用依赖于 MFC 的第三方库(用于 CString 等).有没有办法将 MFC 添加到我的应用程序中以允许我使用这个库,还是我需要自己重写它? 我看到这个问题,但它没有告诉我如何添加MFC 手动到项目中. 解决方案 如果库应用采用/返回/使用 CString,则需要与 MFC 库链接,或者 MFC 库已经静态 ..
发布时间:2022-01-12 15:26:59 C/C++开发