MFC界面开发小技巧.doc
文本预览下载声明
1、在单文档工程中更新视图
关键函数:Invalidate(BOOL bErase = TRUE);
简介:用于重新执行OnDraw()。当参数为默认的true时,擦除并重画;当参数为false时,保留原先所绘,并更新视图。
2、设置文字背景透明
关键函数:SetBkMode(int nBkMode);
简介:主要是向参数中填进两个常量之一【TRANSPARENT(1) ?OPAQUE(2)】,推荐透明选项 会比较能融入界面。
3、解决TextOut()不能打印\n的问题
关键函数:TextOut(int x, int y, const CString str);
??????????TextOut(int x, int y, LPCTSTR lpRect, int nCount);
??????????DrawText(const CString str, LPRECT lpRect, UINT nFormat);
??????????DrawText(LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat);
简介:这两个借助DC输出文字的函数都支持CString和const char*,不同的是利用DrawText()可以输出字符串中
?????【typedef LPCSTR LPCTSTR;?typedef CONST CHAR *LPCSTR, *PCSTR;】
??????的\n效果,而TextOut()输出的是|,无法输出转行的效果。但是DrawText()传入的是一个LPRECT参数,
?????【typedef struct tagRECT FAR *LPRECT;】
??????需要建立一个CRect类的实例,然后传入地址。第三个参数用于选择对齐模式,常用的有DT_LEFT(0)、 ???????DT_CENTER(1)、DT_RIGHT(2)、DT_BOTTOM(8)等等,当然可以利用 | 进行多项组合了……
4、删除Edit框中的文字
关键函数:UINT GetLimitText(); SetSel(DWORD dwSelection, BOOL bNoScoll = FALSE);
??????????SetSel(int nStartChar, int nEndChar, BOOL bNoScoll = FALSE); Clear();
简介:首先利用SetSel()进行Edit框中文字的选择,最后一个参数作用未知……可以利用GetLimitText()返回控件的最大允许值作为参数,最后利用Clear()函数删除选中的文字
5、设Edit框为只读
关键函数:SetReadOnly(BOOL bReadOnly = TRUE);
简介:参数为true设置为只读,参数为false设置可读写
6、设置单文档的格式
关键函数:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT cs);//在MainFrame中
简介:在该函数中添加 cs.style = ~(WS_MAXIMIZEBOX | WS_MINIMIZEBOX);可以屏蔽单文档的最大化最小化功能。?
7、禁用按钮
关键函数:CWindow :: EnableWindow(BOOL bEnable = TRUE);
简介:利用CButton的EnableWindow()函数,将参数设置为false时禁用该按钮,true的时候启用该按钮
8、解决在MFC不能使用math.h的函数
关键函数:无
简介:无论是包含math.h还是cmath + using namespace std 都显示pow()函数没有定义,这让人很郁闷。 ??????解决方法就是将math.h放到#include stdafx.h之后就行了。不得不承认包含头文件顺序的重要性……至于是什么原因,暂时未知。
9、屏蔽对话框的回车信息
关键函数:BOOL PreTranslateMessage(MSG* pMsg)?
简介:重载这个虚函数,在里面添加代码:
??????if (pMsg-message == WM_KEYDOWN (pMsg-wParam == VK_RETURN || pMsg-wParam == VK_ESCAPE))
??????????????return true;
??????即可屏蔽回车和ESC键。当然你可以添加其他代码,比如调用OnButtonOk()等……
10、将静态文本控件融入图片
关键函数:HBRUSH C**Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
显示全部