- 博客(14)
- 资源 (38)
- 收藏
- 关注
原创 17.VC(ui)-托盘图标和弹出菜单的实现(随手代码)
直接上代码:void CIconDemoDlg::InitTrayIcon(void){ //-------------------------------------------------- // NOTIFYICONDATA: // cbSize:
2011-09-28 13:51:15 1900
原创 39.VC(custom)-CTooltip简单用法
1.父窗口中一定要调用EnableToolTips(TRUE);2.在oncreate中初始化:m_Tip.Create(this); m_Tip.AddTool(this, m_szTipText);3.需要显示时:if (m_Tip.GetSafeHwnd
2011-09-27 12:19:44 2278
原创 0.VC(ui)-WM_NCHITTEST message总结
最近hook滚动条,用到了很多这方面小知道,总结下:HTBORDER:In the border of a window that does not have a sizing border.边界上!that does not have a sizing border
2011-09-24 14:02:31 982
原创 0.VC(ui)-hook 换肤ERROR 汇总
以下为hook dll在项目应用中,由大家帮助发现的BUG:1.hook Dialog,又发现一个小BUG,就是在SetWindowText设置caption时,不刷新过来,本以为是WM_SETTEXT消息刷新下,发现不行,老招,打印所有消息,发现存在个WM_GETICON消息,处理下,调用NCPAINT,搞定,记录下.2.hook Button, 必须在WM_SETTEXT中加一个刷新,
2011-09-23 18:49:51 1649
原创 SetStretchBltMode() 防止图片失真
当用StretchBlt缩小时,我们经常发现它会失真:其原因为当StrecthBlt() 的DestRect比SorRECT小時 必須要將一些点去掉他的预设做法 是將要去掉的点与旁边的点做AND运算,所以导致像素错误,解决方法:(原图)COLORONCOLOR:直接將不要的点删掉.HALFTONE:將要删掉的像素跟周围的中和起來,這样可得到较好的画质 不过效率当然要牺牲点(...
2011-09-17 18:05:47 18459 2
原创 38.VC(custom)-调用临时Fonts(随手代码)
系统Windows\Fonts找不到,没法了,自己在EXE目录下建一个Fonts目录,直接临时调用: 1.int XXX::InstallTempFont(){ wchar_t path[MAX_PATH]; GetModuleFileName(NU
2011-09-16 14:44:39 1618
原创 16.VC(ui)-CEdit自绘点
就几个点:背景色,字体颜色,字体大小,注意的是字体大小最好用WM_SETFONT来处理,我也是在挂钩时打印消息发现了它,直接看MSDN就知道怎么发送了。代码:HBRUSH CSkinEdit::CtlColor(CDC* pDC, UINT nCtlColor)
2011-09-10 13:31:51 1693 1
原创 15.VC(ui)-listctrl绘制(解决水平滚动文字重影bug)
犯了一个小错,水平滚动时出现文字重影,所以改了下:错误在于,在遍历列时,我用 CRect rcColumn; GetHeaderCtrl()->GetItemRect(i, &rcColumn);这是错误的,因为一旦水平滚动时,这样得到的rcColumn就会不确定
2011-09-08 20:27:30 1143
原创 自适应图片
有时我们在一个区域绘制一张图片,如果强制绘制,会失图片失真,所以自己写了一个简单算法,计算在当前区域下,按图片比例显示的区域为多大,居中代码如下:BOOL MeetRect(CRect &rc, CSize szPic){ int x, y, w, h;
2011-09-08 11:05:31 910
原创 Gdi+ drawstring
1.犯了一个错误:Brush(RGB(255,0,0));这样写程序不会报错,然后很悲剧的怎么也显示不出文字,记录下,以后不要再犯了。 自己写的示例代码:CPaintDC dc(this); Graphics g(dc.GetSafeHdc());
2011-09-08 09:16:34 14356 1
原创 0.VC(ui)-hook-树形控件滚动条刷新bug
滚动条从有到无,怎么都不消失,仔细跟了下,发现list会SetScrollRanger后自动调用ShowScrollBar来隐藏,所以hook SetScrollRanger,加入代码: wchar_t szClass[MAX_PATH] = {0}; GetClassName(hWnd, szClass, MAX_PATH); if(lstrcmpiW(szClass, TEXT("
2011-09-06 19:33:56 984
原创 0.VC(ui)-hook-解决ComLbox不刷新的BUG
用spy++仔细看了,在下拉框打开时,不响应WM_NCPAINT消息,所以打印出所有消息,确定在70,71消息时强制刷新次代码如下:case WM_WINDOWPOSCHANGED: OnNcPaint(psb, (HRGN)1); break; case WM_WINDOWPOSCHANGING: OnNcPaint(psb, (HRGN)1); break;
2011-09-06 19:29:24 724
原创 MemDC,GDI绘制注意点
最近绘制老犯同样的错误,记录下:1.MemDC中的MemBmp大小一定要设定好,经常设小了,后面的绘不出来,同时最后dc.bitblt时,大小一定要和MemBmp 一致,同样经常是MemBmp必变了,bitblt的rcDest没变,结果还是绘不出来。2.MemDC上绘
2011-09-02 15:46:27 1951
原创 14.VC(ui)-禁用拖动时显示窗口
在电脑-属性-高级-性能设置-拖拉时显示窗口内容,如果选中这个框,那么其他窗口在自绘的窗口拖动就很闪,没法了,禁用它,程序关闭后再还原它 判断是否这个属性勾上了:BOOL CMTSFrmApp::IsDragFullWindows(){ BOOL bR
2011-09-01 15:13:15 1536
debug.exe在win7-64下模拟
2015-08-25
SetStretchBltMode测试
2011-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人