MFC相关
silvervi
这个作者很懒,什么都没留下…
展开
-
HWND和CWnd的关系及互相转换
HWNDHWND是窗口句柄,记录了你要找的窗口对象的地址,通过这个成员记录的地址,你能轻松的找到窗口对象。 CWnd CWnd是窗口类,它把句柄和相关API封装到一个类中,使得使用方便。 在该类中包含句柄成员变量m_hWnd 两个之间互相转换 句柄原创 2009-12-16 13:19:00 · 1126 阅读 · 0 评论 -
关闭对话框,OnClose和OnCancel
我们知道,在对话框中,屏蔽ESC键自动退出可以选择重载OnCancel为哑函数的方法: void CXXXXDlg::OnCancel() { // TODO: Add your specialized code here and/or call the base class //CDialog::OnCance原创 2009-12-17 18:40:00 · 21990 阅读 · 6 评论 -
MessageBox中第一个参数hWnd的作用
MFC好久不用就会忘记,这次用到MessageBox才注意到里面第一个参数。函数定义如下: int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType );Parameters h原创 2009-12-16 13:33:00 · 4199 阅读 · 0 评论 -
在DLL中接收系统消息的办法
程序中需要在DLL中接收系统消息,在网上搜了搜,总结出两种方法: 1. 建立一个隐藏窗口 在程序开始的时候创建一个隐藏窗口,注意这个窗口必须是无模式窗口,这样才能隐藏起来不干扰正常操作。在窗口中添加消息响应函数即可。 2. 全局钩子函数 这个办法暂时没有原创 2009-12-24 16:59:00 · 2208 阅读 · 3 评论 -
对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决
<br /><br /><br /> 今天在调试程序中发现了程序中出现的一个问题,具体如下:<br /><br /><br /> 在对话框中新建一个线程worker thread,当用户点击cancel时,通知该线程函数退出,同时用WaitForSingleObject等待该线程结束。但是每当用户点击Cancel后,程序会卡在OnCancel函数中的WaitForSingleObject处,必须要强制结束才能退出。<br /><br /><br /> 在网上查了一下,大致原因如原创 2010-09-09 20:28:00 · 18184 阅读 · 10 评论 -
MFC中WinHelp函数在64位系统上重载失败的原因
<br /> MFC中,键盘上的F1加速键会直接和基类的WinHelp函数关联,从而按下F1打开和应用同名的HLP文件。如果我们的帮助文件格式是其它格式,如chm,或者文件的名字不一样,则需要重载WinHelp函数,在函数内部修改m_pszHelpFilePath变量。<br /> <br /> 如果在Visual Studio中采用wizard重载WinHelp函数,它的格式如下:<br /> <br />virtual void WinHelp(DWORD dwData, UINT原创 2011-05-25 15:59:00 · 2115 阅读 · 0 评论