摘要: SendMessage、PostMessage原理本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了解Windows的消息循环机制。1、SendMessage、PostMessage的运行机制我们先来看最简单的。SendMessage可以理解为,SendMessage函数发送消息, 阅读全文
posted @ 2011-06-27 21:02 心随灵动 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 如果直接在线程里调用AfxGetMainWnd可能会出错,原因:_AFXWIN_INLINE CWnd* AFXAPI AfxGetMainWnd(){ CWinThread* pThread = AfxGetThread(); return pThread != NULL ? pThread->GetMainWnd() : NULL; }而AfxGetThread获取的是当前线程,而不是主线程!CWinThread* AFXAPI AfxGetThread(){// check for current thread in module thread stateAFX_MODULE_TH 阅读全文
posted @ 2011-06-27 20:12 心随灵动 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 关于在线程中使用AfxGetMainWnd()出错的问题.AfxGetMainWnd()得到的是当前线程的主窗口(如果有的话).因为主窗口是属于主线程的,所以想得到主窗口HWND值,只能在主线程中用AfxGetMainWnd(),但要不是处在主线程中,AfxGetMainWnd()可能是从当前线程查询主窗口的。但好像AfxGetMainWnd()不能跨线程,故要出错.要想在线程中使用主窗口的HWND值,可以把主窗口的HWND值传给线程.也可以用AfxGetApp()先取得主线程,再通过CWinThread的类成员m_pMainWnd获得主窗口(AfxGetApp()->m_pMainWn 阅读全文
posted @ 2011-06-27 20:11 心随灵动 阅读(3105) 评论(1) 推荐(2) 编辑
摘要: 引用小甜鼠的CTreeCtrl中用右键选中item并弹出菜单的方法在csdn上看了几篇文章,自己正好派上用场,总结一下://获取到鼠标点中的位置POINT pt;GetCursorPos(&pt);UINT uFlags;//将屏幕坐标转化为客户区坐标ScreenToClient(&pt);MapWindowPoints(&m_ctrlClassTree, &pt,1);//获取鼠标点中位置的itemHTREEITEM hItem = m_ctrlClassTree.HitTest(pt,&uFlags);if ((hItem != NULL) & 阅读全文
posted @ 2011-06-27 15:58 心随灵动 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 首先定义右键消息函数: afx_msg void OnRBClick(NMHDR* pNMHDR, LRESULT* pResult); 然后在消息循环中定义消息对应关系: ON_NOTIFY(NM_RCLICK, ID_TREECTRL, OnRbClick) 接着定义消息函数内容: void OnRBClick(NMHDR* pNMHDR, LRESULT* pResult) { CPoint point; GetCursorPos(&point); CPoint pointInTree = point; m_TreeCtrl.ScreenToClient(&pointIn 阅读全文
posted @ 2011-06-27 15:56 心随灵动 阅读(1524) 评论(0) 推荐(0) 编辑
摘要: 匈牙利表示法: 它通过在每一个表示符名字的前面放置一个数据类型助记符,为程序员提供了对标识符的即时识别。《1》MFC、句柄、控件及结构的命名规则。 Windows类型 样本变量 MFC类 样本对象 HWND hWnd CWnd* pWnd HDLG hDlg CDialog* pDlg HDC hDC CDC* pDC HGDIOBJ hGdiObj CGdiObject* pGdiObj HPEN hPen CPen* pPen HBRUSH hBrush CBrush* pBrush HFONT hFont CFont* pFont HBITMAP hBitmap CBitmap* pBi 阅读全文
posted @ 2011-06-27 11:42 心随灵动 阅读(241) 评论(0) 推荐(0) 编辑