马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
新手新手,不敢班门弄斧
代码和程序在附件
在写这个程序中发现GetPixel函数获取的位置的像素似乎不正确,于是开始在网上查找,找到了原因:/*
可能的原因
如果显示器分辨率(每英寸的像素数)过高,Windows会拉伸图形,即所谓DPI缩放,
导致应用程序GetPixel取到的点跟鼠标箭头不一致。(详细描述见参考链接)
解决方法
在进入WinMain函数后立即调用SetProcessDPIAware函数,以告知Windows系统本程序支持DPI。
*/
其次,改变背景颜色 这里背景颜色设置为获取的颜色hBrush = CreateSolidBrush(color);
hOldBrush = SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG)hBrush); // 替换指定窗口类的结构
然后,设置DrawText的颜色, 发现 SetROP2 设置反色不能改变DrawText的颜色, 于是使用以下方式SetTextColor(hdc, RGB(255 - GetRValue(color), 255 - GetGValue(color), 255 - GetBValue(color))); // 将字体颜色设置为背景颜色的 反色
这里注释的不知道对不对*cxWindow = tm.tmAveCharWidth * 20 + GetSystemMetrics(SM_CXBORDER) * 2; // 20个平均字体宽度 + 2 个窗口边框宽度
*cyWindow = tm.tmHeight * 3 + GetSystemMetrics(SM_CYBORDER) * 2 + GetSystemMetrics(SM_CYCAPTION); // 3个字体高度 + 窗口边框 + 标题高度
比较简易 ,通过观看小甲鱼的视频教程+Windows程序设计第5版这本电子书
|