1.MFC中设置字体
由于MFC中只能在属性里设置整个对话框的字体,而不能对某一个具体的控件设置
所以,必须编程来实现。
SendMessage(GetDlgItem(hWnd,IDC_TEXT), WM_SETFONT, (WPARAM)hFont, (LPARAM)TRUE);
SendMessage(GetDlgItem(hWnd,IDC_BUTTON),
2. 不规则窗口的创建方法, 按位图生成不规则窗口
CRect rect;
GetWindowRect(&rect); // 获取窗口矩形框
CRgn rgn; // 构造自己的RGN
rgn.CreateRoundRectRgn(0,0,rect.Width(),rect.Height(), 5,5);
this->SetWindowRgn((HRGN) rgn.GetSafeHandle(),true);
RGN可以自由构造,最后你要做的只是调用SetWindowRgn这个函数来设置窗口的范围;
你还可以使用一幅位图来作为生成这个窗口RGN的依据 . 这里提供一个函数, 来自CODEPROJECT. 它有3个参数 第一个hBmp是位图的句柄, 第二个是掩码色, 第三个表示掩码色上下可浮动的范围(这个范围内都不创建RGN) ; 不过要提醒的是, 这个函数在使用时RGB颜色是相反的(比如RGB(255,0,0)应该表示的是红色, 使用该函数十却是将蓝色区域排除), 所以最好是使用RGB(255,0,255)作为掩码色, 那么就无所谓了.
你可以在PreSubClassWindow函数里调用这个函数, 并调用如下函数实现不规则的窗口, 至于下一步要不要贴图
就看你自己了, 反正窗口是生成了;
SetWindowRgn(rgn, TRUE );
ModifyStyle(0, BS_OWNERDRAW);
//
// BitmapToRegion : Create a region from the "non-transparent" pixels o