天狼鼠

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 47 下一页

2011年3月20日

摘要: void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){CDC dc;dc.Attach(lpDrawItemStruct->hDC);VERIFY(lpDrawItemStruct->CtlType==ODT_BUTTON);CBrush brush;brush.CreateSolidBrush(RGB(0,0,120));CRect rect;rect=lpDrawItemStruct->rcItem;dc.FillRect(rect,&brush);/*UINT uStyle = DFCS_BUTT 阅读全文
posted @ 2011-03-20 16:39 情有独钟 阅读(960) 评论(0) 推荐(0) 编辑

摘要: CWinThread::m_pMainWnd 该成员变量去存储你的线程主窗口对象。当和m_pMainWnd 相关的窗口被关闭后,MFC会自动终止你的线程。如果该线程是应用程序主线程,程序也将会被终止。如果该数据成员为NULL,应用程序CWinApp对象的主窗口将用来决定什么时候去终止线程。m_pMainWnd是一个CWnd*类型的public变量。 很明显,你需要在重载InitInstance时为m_pMainWnd赋值。在工作线程中,m_pMainWnd自动继承其父线程的值。补充:只有CWinThread对象才有m_pMainWndclass CWinThread : public CCmd 阅读全文
posted @ 2011-03-20 16:38 情有独钟 阅读(505) 评论(0) 推荐(0) 编辑

摘要: OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCreatePictureIndirect来加载图片,不过相比而言OleLoadPicture函数简化了基于流的IPicture对象的创建),下面是示例代码:(注:由于只是用来示例,代码中省去了出错情况的处理)void DisplayImage(HDC hDC, LPCTSTR szImagePath) { HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_REA 阅读全文
posted @ 2011-03-20 16:38 情有独钟 阅读(300) 评论(0) 推荐(0) 编辑

摘要: CWnd,CDC, Cxxx等都是MFC的类,这些类提供了很多成员函数来执行系统调用等操作,但是核心的类成员数据都是 句柄,(包括窗口句柄,DC句柄,线程句柄等)。 m_hWnd m_hDC m_hThread 如果这些类对象的这些句柄为空,就表示无效对象。比如你 CWnd * pWnd = new CWnd,执行是合法的,但是没有Create就没有窗口句柄,基本上就是一个无效对象,只是系统内存申请了内存分配空间而已,很多操作都无法执行(debug模式下会出现断言错误窗口)。 但是,假如你申请了一个CWnd,CDC的对象实体,可以使用Attach来指定一个有效的句柄付给这个对象。那么此对象就是 阅读全文
posted @ 2011-03-20 16:37 情有独钟 阅读(447) 评论(0) 推荐(0) 编辑

摘要: CWnd::OnNcHitTest afx_msg UINT OnNcHitTest( CPoint point ); 返回值:下面列出的鼠标击中测试枚举值之一。 · HTBORDER 在不具有可变大小边框的窗口的边框上。 · HTBOTTOM 在窗口的水平边框的底部。 · HTBOTTOMLEFT 在窗口边框的左下角。 · HTBOTTOMRIGHT 在窗口边框的右下角。 · HTCAPTION 在标题条中。 · HTCLIENT 在客户区中。 · HTERROR 在屏幕背景或窗口之间的分隔线上(与HTNOWHERE相同, 阅读全文
posted @ 2011-03-20 16:36 情有独钟 阅读(569) 评论(0) 推荐(0) 编辑

上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 47 下一页