




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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不能使用的函数关键函数:无简介:无论是包含还是 + using namespace std 都显示pow()函数没有定义,这让人很郁闷。 解决方法就是将放到#include stdafx.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)简介:响应这个消息,在里面添加代码if (nCtlColor = CTLCOLOR_STATIC) pDC-SetBkMode(TRANSPARENT); /设置背景透明return HBRUSH(GetStockObject(HOLLOW_BRUSH); 但是如果这样,会导致包括edit框在内的背景透明,之后的文字无法覆盖之前的文字的BUG,因此需要对要使背景if (nCtlColor = CTLCOLOR_STATIC & (pWnd- GetDlgCtrlID() = IDC_STATIC | pWnd- GetDlgCtrlID() = IDC_STATIC_CHECK) pDC-SetBkMode(TRANSPARENT); /设置背景透明return HBRUSH(GetStockObject(HOLLOW_BRUSH); 可以指定对某些控件,文字背景透明化。11、在基于FormView的单文档中初始化背景关键函数:void OnPaint()简介:添加该View类的WM_PAINT消息,即可在该函数中进行操作12、取消FormView滚动条关键函数:void *View:OnSize(UINT nType, int cx, int cy);ShowScrollBar(SB_BOTH, FALSE);简介:在View类中响应WM_SIZE消息,添加语句ShowScrollBar(SB_BOTH, FALSE)即可。13、动态绘图关键函数:BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );简介:除了静态利用Pictrue控件,亦或是利用画刷将图片画上去(但是除了对整个背景的绘画外,画小的图片需要利用此方法)。先附上MSDN给的利用范例: CBitmap bmp; if (bmp.LoadBitmap(IDB_BITMAP1) / Get the size of the bitmap BITMAP bmpInfo; bmp.GetBitmap(&bmpInfo); / Create an in-memory DC compatible with the / display DC were using to paint CDC dcMemory; dcMemory.CreateCompatibleDC(pDC); / Select the bitmap into the in-memory DC CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp); / Find a centerpoint for the bitmap in the client area CRect rect; GetClientRect(&rect); int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2; int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2; / Copy the bits from the in-memory DC into the on- / screen DC to actually do the painting. Use the centerpoint / we computed for the target offset. pDC-BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY); dcMemory.SelectObject(pOldBitmap); else TRACE0(ERROR: Wheres IDB_BITMAP1?n);关于参数使用说明:前4个划定一个矩形区域,第五个参数传进一个指向CDC的指针,第6个、第7个设为0,第8个表示源图片和目的图片的关联,一般填SRCCOPY14、进行对话框初始化操作关键函数:OnInitDialog()简介:不能响应WM_CREATE消息,不然DoModal()的时候会异常,需要在OnInitDialog()函数中进行处理。15、关闭整个FormView程序关键函数:AfxGetMainWnd(),DestroyWindow();简介:直接调用全局函数AfxGetMainWnd()获得窗体指针,然后直接调用DestroyWindow(),即可直接退出程序。16、COLORREF转对应的R、B、G值关键函数:下面3个宏,可以从COLORREF当中提取单独的颜色 ,GetBValue ()、GetGValue ()、GetRValue()简介:如果需要单独显示颜色对应的RGB值,针对大多数函数返回的COLORREF值,需要通过对应的宏来进行转化。注:typedef DWORD COLORREF;typedef unsigned long DWORD;如果RGB转COLORREF,只需要调用函数: COLORREF RGB( BYTE byRed, / red component of color BYTE byGreen, / green component of color BYTE byBlue / blue component of color);17、动态改变对话框的背景颜色关键函数:HBRUSH CCColorDialogLearningDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)简介:如果需要动态改变某个对话框的背景颜色,需要对对话框响应WM_CTLCOLOR消息,在OnCtlColor()函数中添加以下自定义代码:if (nCtlColor = CTLCOLOR_DLG)CBrush m_brush(m_bk_color);CRect m_rect;GetClientRect(&m_rect);/m_brush.CreateSolidBrush(m_bk_color);pDC-SelectObject(&m_brush);pDC-FillRect(&m_rect, &m_brush);return m_brush;当然,在动态改变对话框颜色处,加入Invalidate()才能发送WM_CTLCOLOR消息,进行对应消息响应。注:这种方法怎么让我想起了单文档里面的OnDraw()或者是OnPaint()函数期待进一步加深对OnCtlColor()的认识18、制作个性化屏保关键函数:无简介:需要将Dlg程序设置成没有边框,然后自定义响应鼠标信息。做成之后,输出成.scr格式的文件,放到Cwindowssystem32中,便可以在屏保选项中加载自定义屏保。19、设置静态文本中的字体关键函数:SetFont(CFont *pFont, BOOL bRedraw = TRUE);简介:利用CStatic的控件方法,可以设置字体。但是传进去的CFont变量一定要有相对于DLG的全局属性(可以设置成其成员变量)。20、响应单击静态文本的消息关键函数:无简介:需要给静态文本勾选Notify选项(通知选项),再响应对应的信息即可。21、使用图标按钮关键函数:HICON SetIcon(HICON hIcon)简介:首先要勾选按钮的图标属性选项(勾选了之后,按钮将不再显示字体),再在初始化时调用SetIcon方法,如:m_icon_button.SetIcon(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(BTN_ICON);注:如果想拓展当鼠标移到按钮时,显示对应的字体提示,需要添加相对于DLG的CtoolTipCtrl类的全局变量,然后在DLG初始化时调用Create()和AddTool方法即可,如:m_tooltip.Create(this); m_tooltip.AddTool(&this-m_icon_button, 进入游戏);最后重写虚函数PreTranslateMessage,并添加:m_tooltip.RelayEvent(pMsg);22、改变应用程序的图标关键函数:无简介:直接载入图标,替换IDR_MAINFRAME图标23、利用picture控件动态加载位图关键函数:HBITMAP SetBitmap(HBITMAP hBitmap)【picture控件的方法】;LoadBitmap ( HINSTANCE hinst, / h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修小组部门管理制度
- 美术机构寝室管理制度
- 中小生睡眠管理制度
- 不良品仓库管理制度
- 科技公司工资管理制度
- 社区模特团队管理制度
- 矿井防治瓦斯管理制度
- 药品生产指令管理制度
- 小区扫地车管理制度
- 管道颜色标识管理制度
- 2024年11月-矿山隐蔽致灾因素普查
- 刷单合同范本
- CNAS-CL02-A001:2023 医学实验室质量和能力认可准则的应用要求
- DBJ51T 163-2021 成都轨道交通设计防火标准
- 加热炉安全操作规程培训课件
- 特种设备隐患排查与整治
- 2024年人教版七年级下册生物期末检测试卷及答案
- 《造血干细胞移植护理》课件
- 2025年非法集资课件:制作与投资者教育新思路
- 北京昌平小升初数学试卷
- 新外研社高中英语选择性必修一单词表
评论
0/150
提交评论