您的位置:首页 > 其它

Win32设置修改STATIC控件字体、颜色

2017-08-24 15:02 549 查看
#include "stdafx.h"

#define IDC_FILTER_STATIC 1001

HINSTANCE g_hInstance;

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// TODO: Place code here.
g_hInstance = hInstance;
TCHAR className[] = TEXT("my class");
WNDCLASS wndclass = {0};
wndclass.hInstance = hInstance;
wndclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
wndclass.lpszClassName = className;
wndclass.lpfnWndProc = WindowProc;

RegisterClass(&wndclass);

HWND hMain = CreateWindow(className,"静态文本修改",WS_OVERLAPPEDWINDOW,100,100,400,300,NULL,NULL,hInstance,NULL);

if (!hMain)
{
OutputDebugString("创建窗口失败!");
return 0;
}

ShowWindow(hMain,SW_SHOW);

MSG msg;
BOOL ret;
while (ret=GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}

//窗口过程
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam)
{
static HFONT hFont;//定义静态字体变量
switch(uMsg)
{
case WM_CREATE:
{

hFont = CreateFont(12,0,0,0,0,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"微软雅黑");//创建字体
HWND hStatic = CreateWindow("STATIC","静态文本",WS_CHILD|WS_VISIBLE,10,10,100,25,hwnd,(HMENU)IDC_FILTER_STATIC,g_hInstance,NULL);//创建静态文本
SendMessage(hStatic,WM_SETFONT,(WPARAM)hFont,TRUE);//发送设置字体消息

break;
}

case WM_CTLCOLORSTATIC://拦截WM_CTLCOLORSTATIC消息
{
if ((HWND)lParam == GetDlgItem(hwnd,IDC_FILTER_STATIC))//获得指定标签句柄用来对比
{
SetTextColor((HDC)wParam,RGB(255,0,0));//设置文本颜色
SetBkMode((HDC)wParam,TRANSPARENT);//设置背景透明
}

return (INT_PTR)GetStockObject((NULL_BRUSH));//返回一个空画刷(必须)
}
case WM_DESTROY:
{
DeleteObject(hFont);//删除所创建字体对象
PostQuitMessage(0);
break;
}
}

return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  win32
相关文章推荐