0 GP
CreateWindow (TEXT ("static") 換文字跟背景顏色
作者:茄子熊│2012-05-30 09:44:07│巴幣:0│人氣:1179
#include <windows.h>
const int ID_MYBUTTON = 60001;
const int ID_STATIC = 60002;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
/* ************************************
* 功能顯示一個視窗
**************************************/
int WINAPI WinMain(HINSTANCE hinstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASSEX wcx; // 視窗類
HWND hwnd; // 視窗處理
MSG msg; // 訊息
// 填充視窗類的資料結構
wcx.cbSize = sizeof(wcx);// 結構體的大小
wcx.style = CS_HREDRAW | CS_VREDRAW; // 樣式:大小改變時重繪介面
wcx.lpfnWndProc = WndProc; // 視窗訊息處理函數
wcx.cbClsExtra = 0; // 不使用類記憶體
wcx.cbWndExtra = 0; // 不使用視窗記憶體
wcx.hInstance = hinstance;// 所屬的應用程式實例處理
wcx.hIcon = LoadIcon(NULL, IDI_APPLICATION); // 圖示:使用預設值
wcx.hCursor = LoadCursor(NULL, IDC_ARROW);// 遊標:使用預設值
wcx.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH); // 背景:白色
wcx.lpszMenuName = NULL; // 選單:不使用
wcx.lpszClassName = TEXT("MainWClass");// 視窗類名
wcx.hIconSm = (HICON)LoadImage(hinstance,// 小圖示
MAKEINTRESOURCE(5),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
LR_DEFAULTCOLOR);
// 註冊視窗類
if(!RegisterClassEx(&wcx))
{
return 1;
}
// 建立視窗
hwnd = CreateWindow(
TEXT("MainWClass"), // 視窗名
TEXT("Test"), // 視窗標題
WS_OVERLAPPEDWINDOW,// 視窗樣式
100, // 水準位元置X:使用預設值
100, // 垂直位元置Y:使用預設值
640, // 寬度:使用預設值
480, // 高度:使用預設值
(HWND) NULL, // 父視窗:無
(HMENU) NULL, // 選單:使用視窗類的選單
hinstance, // 應用程式實例處理
(LPVOID) NULL); // 視窗建立時資料:無
if (!hwnd)
{
return 1;
}
// 顯示視窗
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// 訊息迴圈
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
/* ************************************
* WndProc
* 功能視窗訊息處理函數,
對所有的訊息都使用NULL處理函數
**************************************/
LRESULT CALLBACK WndProc(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
static HBRUSH hBrushStatic ;/////////////////////////////////////////換顏色1
PAINTSTRUCT ps;
HDC hdc;
switch (Message)
{
case WM_CREATE:
{
CreateWindow (TEXT ("static"), TEXT ("Red"),///////////////////////////換顏色2
WS_CHILD | WS_VISIBLE | SS_CENTER,
0, 0, 50, 50,
hwnd, HMENU(ID_MYBUTTON),
((LPCREATESTRUCT)lParam)->hInstance, NULL) ;
hBrushStatic = CreateSolidBrush (GetSysColor (COLOR_BTNHIGHLIGHT)) ;///換顏色3
}
break;
case WM_CTLCOLORSTATIC :////////////////////////////////////////////換顏色4
SetTextColor ((HDC) wParam, RGB (255, 0, 0)) ;
SetBkColor ((HDC) wParam, GetSysColor (COLOR_BTNHIGHLIGHT));
return (LRESULT) hBrushStatic ;
break ;////////////////////////////////////////////////////////////////換顏色結束
case WM_COMMAND:
// 剖析功能表選取項目:
switch (LOWORD(wParam))
{
case ID_MYBUTTON:
{
}
break;
default:
return DefWindowProc(hwnd, Message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
// TODO: 在此加入任何繪圖程式碼...
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hwnd, Message, wParam, lParam);
}
return 0;
}
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1618032
All rights reserved. 版權所有,保留一切權利