
MFC界面
iteye_7173
这个作者很懒,什么都没留下…
展开
-
利用 SetRedraw 减少闪烁 提高绘制效率
在实际应用中,CTabCtrl或者CListCtrl在插入大量数据时界面绘制变发生剧烈闪烁,并且插入效率较慢。利用SetRedraw可以解决此问题。实际测试CTabCtrl插入上千条记录未优化前需要30~40秒,优化后需要1~2秒。 摘自百度百科CWnd::SetRedraw void SetRedraw( BOOL bRedraw = TRUE ); 参数: bRedraw 指定...原创 2012-11-16 14:14:13 · 663 阅读 · 0 评论 -
自绘标题栏在Win7经典模式下刷新异常的问题
实际应用中,程序使用自绘标题栏,在Win7经典模式下进行放大还原操作时出现标题栏绘制不全的问题。 最大化操作后,标题栏的右侧未绘制完全。需要强制进行标题栏刷新后才能正常显示。代码如下: ::SendMessage(this->GetSafeHwnd(),WM_NCPAINT,0,0); 原因分析:打开Aero特效的模式下,绘制均正常,在经典模式下不能进行刷...原创 2012-11-16 14:47:07 · 327 阅读 · 0 评论 -
自绘CTreeCtrl树节点名称显示不全的问题
在实际应用中,需要自绘CTreeCtrl,全部使用gdi绘制节点和文字,当节点名称较长时会出现显示不全的问题,拖动到最右边的时候仍然不能显示完全。 原因是自绘的字体与CTreeCtrl默认的字体不同造成的。解决方法是向树控件发送WM_SETFONT消息,将默认字体替换为自绘的字体。 CFont* pOldFont;CFont newFont;L...原创 2012-11-16 16:13:56 · 465 阅读 · 0 评论 -
SystemParametersInfo中SPI_GETNONCLIENTMETRICS在XP下用法注意
实际应用中,一段代码在Win7下使用正常,在XP下获取字体异常。 ZeroMemory ((PVOID) &m_lf,sizeof (LOGFONT));NONCLIENTMETRICS nm;nm.cbSize = sizeof (NONCLIENTMETRICS);VERIFY (SystemParametersInfo(SPI_GETNONCLIENTMET...原创 2012-11-17 23:36:53 · 472 阅读 · 0 评论 -
屏蔽MFC程序中按F1弹出无法打开帮助文件的提示
方案一: 接受处理ID_HELP 消息ON_COMMAND(ID_HELP, OnMenuHelpID) 定义见afxres.h // special commands for processing help#define ID_HELP 0xE146 // first attempt for F...原创 2012-11-17 23:37:18 · 998 阅读 · 0 评论 -
CComboBox使用SetDroppedWidth按照最长的项显示下拉框
实际应用中,ComboBox的下拉框的长度默认是和它的Edit框相同的,如果插入的个别项特别长时会显示不全。 解决方法如下: CString str; int dx = 0; CSize sz; CDC *pDC = m_CobName.GetDC(); CFont *pOldFont = pDC->Sele...原创 2012-11-17 23:37:29 · 545 阅读 · 0 评论 -
DrawText 中DT_NOPREFIX作用
在实际应用中,遇到DrawText绘制2&时,文字乱码。 认真参阅DrawText用法,发现DT_NOPREFIX绘制项。 DT_NOPREFIX关闭前缀字符的处理。 通常DrawText解释助记前缀字符,&为给其后的字符加下划线,解释&&为显示单个&。指定DT_NOPREFIX,这种处理被关闭。 ...原创 2012-11-17 23:37:39 · 866 阅读 · 0 评论