上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: 一般情况下我们用UPDATE_COMMAND_UI来修改菜单的状态(enable/disable, check/uncheck, change text),但这个方法在一个基于对话框上的菜单却没有效果。//这个方法在MDI、SDI程序中都能起作用,在对话框中却没有效果,根本没有调用这个函数void CTestDlg::OnUpdateFileExit(CCmdUI* pCmdUI) { pCmdUI->Enable(FALSE); pCmdUI->SetCheck(TRUE); pCmdUI->SetRadio(TRUE); pCmdUI->SetText(" 阅读全文
posted @ 2011-05-11 23:20 MagiCube 阅读(483) 评论(0) 推荐(0) 编辑
摘要: MFC窗口位置管理详细分析及实例 在一般用MFC编写的程序的窗口客户区中,可能有好几个子窗口(具有WM_CHILD风格的窗口)。上边是工具栏,中间是视图窗口,下边是状态栏。三个窗口在框架的客户区里和平共处,互不重叠。主框架窗口的尺寸改变了,别的子窗口都能及时调整自己的尺寸以便保持相互位置关系不变,例如状态条窗口总能保持在主框架客户区底部,并且其宽度总能和主框架客户区宽度一致。工具栏窗口总能停靠在主框架的某一边不变,其宽度或高度总能和主框架客户区的宽度或高度一致,视图窗口总能填满主框架客户区的剩余空间。假如我们自己从CWnd类派生一个窗口类并生成一个窗口,在它的客户区里要生成若干个子窗口,我们想 阅读全文
posted @ 2011-05-11 21:53 MagiCube 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 今天在写代码的时候碰到这样的问题,网上查了一下,做了以下整理:CString 和 LPCTSTR 可以说通用。 原因在于CString定义的自动类型转换,没什么奇特的,最简单的C++操作符重载而已。常量字符串ansi和unicode的区分是由宏_T来决定的。但是用_T( "abcd ")时, 字符串 "abcd "就会根据编译时的是否定一_UNICODE来决定是char* 还是 w_char*。 同样,TCHAR 也是相同目的字符宏。 看看定义就明白了。简单起见,下面只介绍 ansi 的情况,unicode 可以类推。ansi情况下,LPCTSTR 就是 阅读全文
posted @ 2011-05-09 23:24 MagiCube 阅读(9588) 评论(0) 推荐(1) 编辑
摘要: LPCTSTR AFXAPI AfxRegisterWndClass( UINT nClassStyle, HCURSOR hCursor = 0, HBRUSH hbrBackground = 0, HICON hIcon = 0 ); 可以简单修改一个窗口的注册类,当然也可以用SetWindowsLong()来实现。 阅读全文
posted @ 2011-05-05 23:42 MagiCube 阅读(326) 评论(0) 推荐(0) 编辑
摘要: ASSERT(Expression),VERIFY(Expression)等当Expression为False的时候起作用。 阅读全文
posted @ 2011-05-05 23:39 MagiCube 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 实现CListBox的自绘功能,可以重载这三个函数:MeasureItem()、DrawItem()、CompareItem(),同时要给CListBox控件的OwnerDraw属性设置成为variable。typedef struct tagDRAWITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemAction; UINT itemState; HWND hwndItem; HDC hDC; RECT rcItem; ULONG_PTR itemData; } DRAWITEMSTRUCT; 中的itemAction表示 阅读全文
posted @ 2011-05-05 23:38 MagiCube 阅读(637) 评论(0) 推荐(0) 编辑
摘要: 在CTreeCtrl等控件中实现drag时,相应图标也随着drag主要是使用CImageList对象中的DrapEnter、DrapLeave、DragMove等方法来实现的。更改CTreeCtrl中item的值:ON_NOTIFY_REFLECT(TVN_ENDLABELEDIT, OnEndLabelEdit) void CMyTreeCtrl::OnEndLabelEdit(LPNMHDR pnmhdr, LRESULT *pLResult){ TV_DISPINFO *ptvinfo; ptvinfo = (TV_DISPINFO *)pnmhdr; if (ptvinfo->i 阅读全文
posted @ 2011-05-05 23:36 MagiCube 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 获取相应控件的样式可以使用:long styel = ::GetWindowLong(m_hWnd,GWL_STYLE);同理,要设置相应控件的样式时,可以使 用::SetWindowLong(m_hWnd,GWL_STYLE,要设置的Style); 修改样式还可以调用CWnd中的ModifyStyle( DWORD dwRemove,DWORD dwAdd,UINT nFlags = 0 ); 阅读全文
posted @ 2011-04-28 23:52 MagiCube 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 根据文件名获取文件信息可以使用static bool CFile::GetState(LPCTSTRlpszFileName, CFileStatus& rStatus )函数,其中CFileStatus结构表示文件的结构,如果成功获取文件信息,则返回为true,否则返回为false。 阅读全文
posted @ 2011-04-28 23:49 MagiCube 阅读(562) 评论(0) 推荐(0) 编辑
摘要: GetWindowRect()函数返回的窗口坐标是基于桌面坐标的,如果想返回一个应用程序中的一个窗口的位置,使用这个函数返回的坐标还需进行ScreenToClient()转化一次,这样得到的坐标才是基于应用程序窗口的坐标。 阅读全文
posted @ 2011-04-28 23:48 MagiCube 阅读(238) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页