文档介绍:这个实例有一定难度,涉及到的sdk平台函数很多。用到了宽字节。总体来讲,收获还是颇丰的,懂得了如何在clistctrl控件里设置文体色和背景色,这之中要用到cmap这个类,这个类是用来设置表格单元格的,封装了哈希函数的查找等功能。总体实现步骤是这样的:
1、加入资源,添加应用到的类,2、在应用程序里设置好信标,找窗口的,3、添加对话框的消息映射及枚举窗口函数,3、在对话框里定义一个全局句柄数组和全局变量HWND g_hWnd[100]={0};
int g_num=0;
4、在构函里定义好画刷及字体 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_mypBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
(RGB(82,105,173));
(RGB(239,239,255));
(95,L"华文行楷");
5、在对话框的初始化函数里加入调入按纽位图代码,设置好列表控件的背景及文本等色,并开始调用全局枚举窗口函数,再用一个循环把所获得的窗口句柄写进内存的字符数组,并将这个数组以字符串形式传入列表控件,从而让列表控件显示所有任务栏中打开的窗口,最后用注册表函数写入热键功能。
((CButton*)GetDlgItem(IDC_BTN_REFRESH))->SetBitmap(
::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)));//就是刷新那两个字即位图,不是自己写的,不括纽的背景色
((CButton*)GetDlgItem(IDC_BTN_HIDE))->SetBitmap(
::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP2)));
((CButton*)GetDlgItem(IDC_BTN_SHOW))->SetBitmap(
::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP3)));
((CButton*)GetDlgItem(IDC_BTN_HIDEMY))->SetBitmap(
::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP5)));
::EnumWindows(CHideWindowDlg::EnumWindowsProc,NULL);
(RGB(0,220,0));
(RGB(82,115,200));
(RGB(82,115,200));//有文本的地方才有这个色
for(int i=0;i<g_num;i++