123456

 
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 39 下一页

2011年9月28日

托盘图标和弹出菜单的实现

摘要: 直接上代码:void CIconDemoDlg::InitTrayIcon(void){ //-------------------------------------------------- // NOTIFYICONDATA: // cbSize: 这个结构的字节大小 // hwnd: 窗口句柄,当鼠标事件发生在系统托盘上时,这个窗口将接收通知码。 // uID: 作为图标标识的一常数。你可以取任意值,但是值必须是唯一的。因为,当有多个图标在托盘上时,你将要区分鼠标消息来自于那个图标。故这个值必须取唯一值。 // uFlags 指定这个结构的那些成员变量有效。 // ... 阅读全文

posted @ 2011-09-28 13:51 hgy413 阅读(168) 评论(0) 推荐(0) 编辑

2011年9月27日

CTooltip简单用法

摘要: 1.父窗口中一定要调用EnableToolTips(TRUE);2.在oncreate中初始化:m_Tip.Create(this);m_Tip.AddTool(this, m_szTipText);3.需要显示时:if (m_Tip.GetSafeHwnd()&&m_bTipShow) { CString szTipText = m_szTipText; if (szTipText.IsEmpty()) { GetWindowText(szTipText); } if (!szTipText.IsEmpty()) { m_Tip.UpdateTipTex... 阅读全文

posted @ 2011-09-27 12:19 hgy413 阅读(197) 评论(0) 推荐(0) 编辑

2011年9月24日

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好像没什么关系,反正普通的框鼠标停在边上就有这个事件(自测试)HTBOTTOMIn the lower-horizontal border of a resizable window (the user can click the mouse to resize the window vertically).可调窗体大小的下边界H 阅读全文

posted @ 2011-09-24 14:02 hgy413 阅读(196) 评论(0) 推荐(0) 编辑

2011年9月23日

hook 换肤ERROR 汇总

摘要: 以下为hook dll在项目应用中,由大家帮助发现的BUG:1.hook Dialog,又发现一个小BUG,就是在SetWindowText设置caption时,不刷新过来,本以为是WM_SETTEXT消息刷新下,发现不行,老招,打印所有消息,发现存在个WM_GETICON消息,处理下,调用NCPAINT,搞定,记录下.2.hook Button, 必须在WM_SETTEXT中加一个刷新,不然在SetWindowText时,系统又自动刷回原形了,搞定,记录下 3.今天又出现一个BUG,在list下,先建立一个能出现滚动条的list ,再点击按钮,切换list到刚好满又没有滚动条时,会发现最后一 阅读全文

posted @ 2011-09-23 18:49 hgy413 阅读(273) 评论(0) 推荐(0) 编辑

2011年9月17日

SetStretchBltMode() 防止图片失真

摘要: 当用StretchBlt缩小时,我们经常发现它会失真:其原因为当StrecthBlt() 的DestRect比SorRECT小時 必須要將一些点去掉他的预设做法 是將要去掉的点与旁边的点做AND运算,所以导致像素错误,解决方法:(原图)COLORONCOLOR:直接將不要的点删掉.HALFTONE:將要删掉的像素跟周围的中和起來,這样可得到较好的画质 不过效率当然要牺牲点(相当于PS的那个模糊工具)。主要测试代码: CRect rcClient; GetClientRect(rcClient); CPaintDC dc(this); CDC dcMem; dcMem.CreateCo... 阅读全文

posted @ 2011-09-17 18:05 hgy413 阅读(518) 评论(0) 推荐(0) 编辑

2011年9月16日

调用临时Fonts

摘要: 系统Windows\Fonts找不到,没法了,自己在EXE目录下建一个Fonts目录,直接临时调用:1.int XXX::InstallTempFont(){ wchar_t path[MAX_PATH]; GetModuleFileName(NULL,path,MAX_PATH); CString szPath = path; int nFind = szPath.ReverseFind('\\'); szPath = szPath.Left(nFind) + TEXT("\\Fonts\\TruthCYR-Regular.otf"); return Ad 阅读全文

posted @ 2011-09-16 14:44 hgy413 阅读(183) 评论(0) 推荐(0) 编辑

2011年9月10日

CEdit自绘点

摘要: 就几个点:背景色,字体颜色,字体大小,注意的是字体大小最好用WM_SETFONT来处理,我也是在挂钩时打印消息发现了它,直接看MSDN就知道怎么发送了。代码:HBRUSH CSkinEdit::CtlColor(CDC* pDC, UINT nCtlColor){ m_Brush.DeleteObject(); m_Brush.CreateSolidBrush(m_BkClr); pDC->SetBkColor(m_BkClr); pDC->SetTextColor(m_TextClr); return (HBRUSH)m_Brush;}必须return 一个HBRUSH对象,表. 阅读全文

posted @ 2011-09-10 13:31 hgy413 阅读(231) 评论(0) 推荐(0) 编辑

2011年9月8日

listctrl绘制

摘要: 犯了一个小错,水平滚动时出现文字重影,所以改了下:错误在于,在遍历列时,我用 CRect rcColumn; GetHeaderCtrl()->GetItemRect(i, &rcColumn);这是错误的,因为一旦水平滚动时,这样得到的rcColumn就会不确定,因为rcColumn是得到绘制区域left,right,这两个值不停变化,从而产生文字的重影所以改了下,改用GetColumn,因为它得到的是width,在水平滚动时,width是不会变化的。代码如下: CDC dc; CRect rc; dc.Attach(lpDIS->hDC); rc = lpDIS-> 阅读全文

posted @ 2011-09-08 20:27 hgy413 阅读(176) 评论(0) 推荐(0) 编辑

自适应图片

摘要: 有时我们在一个区域绘制一张图片,如果强制绘制,会失图片失真,所以自己写了一个简单算法,计算在当前区域下,按图片比例显示的区域为多大,居中代码如下:BOOL MeetRect(CRect &rc, CSize szPic){ int x, y, w, h; int nWidth = rc.Width(); int nHeight = rc.Height(); if(nWidth > 0 && szPic.cx > 0) { // Get Meet Rect if(szPic.cx > nWidth || szPic.cy > nHeight) { 阅读全文

posted @ 2011-09-08 11:05 hgy413 阅读(137) 评论(0) 推荐(0) 编辑

Gdi+ drawstring

摘要: 1.犯了一个错误:Brush(RGB(255,0,0));这样写程序不会报错,然后很悲剧的怎么也显示不出文字,记录下,以后不要再犯了。自己写的示例代码:CPaintDC dc(this); Graphics g(dc.GetSafeHdc()); //--------------------------------------- // fontFamily第一个参数是用来定义 // 宋体、楷体、仿宋、黑体、隶书以及幼圆等多种字样 // 特别说明:Gdi+不支持OpenType字体,吃了一次亏了 //--------------------------------------- F... 阅读全文

posted @ 2011-09-08 09:16 hgy413 阅读(1232) 评论(0) 推荐(0) 编辑

上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 39 下一页

导航