|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <Windows.h>
- #include <stdio.h>
- LRESULT CALLBACK WinHeProc(HWND, UINT, WPARAM, LPARAM);
- int WINAPI WinMain(HINSTANCE dyg, HINSTANCE deg, LPSTR mlh, int xs)
- {
- WNDCLASS cklx;
- cklx.style = CS_HREDRAW | CS_VREDRAW;
- cklx.cbClsExtra = 0;
- cklx.cbWndExtra = 0;
- cklx.hbrBackground = (HBRUSH)(GetStockObject(DEFAULT_PALETTE));
- cklx.hCursor = LoadCursor(NULL, IDC_APPSTARTING);
- cklx.hIcon = LoadIcon(NULL, IDI_HAND);
- cklx.hInstance = dyg;
- cklx.lpfnWndProc = WinHeProc;
- cklx.lpszClassName = "dygcx";
- cklx.lpszMenuName = NULL;
- if (!RegisterClass(&cklx))
- {
- MessageBeep(0);
- return false;
- }
- HWND ckjbA;
- ckjbA= CreateWindow("dygcx", "第一个程序", WS_OVERLAPPEDWINDOW, NULL, NULL, 600, 400, NULL, NULL, dyg, NULL);
- if (!ckjbA)
- {
- MessageBox(NULL, "创建窗口失败!", "错误", NULL);
- return false;
- }
- ShowWindow(ckjbA, SW_SHOWNORMAL);
- UpdateWindow(ckjbA);
- MSG msg;
- while (GetMessage(&msg,NULL,0,0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }
- LRESULT CALLBACK WinHeProc(HWND ckjb, UINT umsg, WPARAM cdcs, LPARAM cscs)
- {
- TCHAR zf[222];
- HDC ht;
- PAINTSTRUCT tu;
- TEXTMETRIC tm;//存放字体相关信息
- LOGFONT lf = { 0 };//自定字体
- CHOOSEFONT cf = { 0 };//初始化字体框
- CHOOSECOLOR cc = { 0 };//自定颜色
- COLORREF crf[16] = { 0 };//初始化自定义颜色
- /*BOOL ChooseFont(LPCHOOSEFONT lpcf)
- typedef struct{
- DWORD lStructSize; //结构体大小
- LPLOGFONT lpLogFont;//字体信息
- DWORD Flags;//CF_SCREENFONTS在屏幕上显示;CF_EFFECT显示下划线,
- 字体颜色,删除线功能;CF_INITTOLOGFONTSTRUCT用lpLogFont初始化选择框
- 。。。。。。
- } CHOOSEFONT, *LPCHOOSEFONT */
-
- /*BOOL ChooseColor(LPCHOOSECOLOR lpcc)
- typedef struct{
- DWORD lStructSize; //结构体大小
- COLORREF refResult;//颜色值
- COLORREF * lpCustColors;//自定义颜色值储存位置
- DWORD Flags;//CC_FULLOPEN显示选择框;CC_RGBINIT用rgbResult值初始化选择框
- 。。。。。。
- } CHOOSECOLOR, *LPCHOOSECOLOR */
- switch (umsg)
- {
- case WM_SIZE:
- sprintf(zf, "宽度:%d,高度:%d", LOWORD(cscs), HIWORD(cscs));
- MessageBox(NULL, zf, "大小", 0);
- break;
- case WM_CREATE:
- MessageBox(ckjb, "创建完毕", "成功", 0);
- break;
- case WM_PAINT:
- ht = BeginPaint(ckjb, &tu);
- GetTextMetrics(ht, &tm);//取得字体大小
- for (int i = 0; i < 5; i++)
- {
- TextOut(ht, 0, tm.tmHeight *i, "我的程序!", strlen("我的程序!"));
- }
- //SetBkMode(hdc,OPAQUB)文字背景模式不透明
- //SetBkMode(hdc,TRANSPARENT)文字背景模式透明
- SetTextColor(ht, RGB(255, 222, 22));//设置字体颜色
- SetBkColor(ht, RGB(1, 222, 22));//设置字体背景颜色
- SelectObject(ht, GetStockObject(ANSI_VAR_FONT));//取得字体形式
- TextOut(ht, 0, 300, "我的程序!", strlen("我的程序!"));
- SelectObject(ht, GetStockObject(ANSI_FIXED_FONT));//取得字体形式
- TextOut(ht, 0, 300 + tm.tmHeight, "我的程序!", strlen("我的程序!"));
- lf.lfHeight = 30;//自定字体的高度
- lf.lfUnderline = 2;//自定带下划线的字体
- SelectObject(ht, CreateFontIndirect(&lf));//选择创建的自定义字体
- TextOut(ht, 121, 3 + tm.tmHeight, "我的程序!", strlen("我的程序!"));
- EndPaint(ckjb, &tu);
- break;
- case WM_CHAR:
- sprintf(zf, "按下了%c键", cdcs);
- MessageBox(ckjb, zf, "键盘消息", 0);
- break;
- case WM_LBUTTONDOWN:
- cc.lStructSize = sizeof(CHOOSECOLOR);
- cc.lpCustColors = crf;
- cc.Flags = CC_FULLOPEN;
- crf[0] = RGB(255, 0, 9);
- ht = GetDC(ckjb);
- ChooseColor(&cc);
- SetBkColor(ht, cc.rgbResult);
- TextOut(ht, 131, 111, "我的程序!", strlen("我的程序!"));
- ReleaseDC(ckjb, ht);
- cf.lStructSize = sizeof(CHOOSEFONT); //字
- cf.lpLogFont = &lf;
- cf.Flags = CF_SCREENFONTS | CF_EFFECTS; //体
- ChooseFont(&cf);
- ht = GetDC(ckjb);
- SetTextColor(ht, RGB(255, 222, 22)); //设置字体颜色 //选
- SetBkColor(ht, RGB(1, 222, 22)); //设置字体背景颜色
- SelectObject(ht, CreateFontIndirect(cf.lpLogFont)); //择
- TextOut(ht, 131, 88, "我的程序!", strlen("我的程序!"));
- ReleaseDC(ckjb, ht); //框
- MessageBox(ckjb, "鼠标左键按下了。。。。", "鼠标消息", 0);
- break;
- case WM_RBUTTONDOWN:
- MessageBox(ckjb, "鼠标右键按下了。。。。", "鼠标消息", 0);
- break;
- case WM_CLOSE:
- if (IDYES == MessageBox(ckjb, "是否退出程序?", "退出程序", MB_YESNO))
- {
- DestroyWindow(ckjb);
- }
- break;
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- return DefWindowProc(ckjb, umsg, cdcs, cscs);
- break;
- }
- return 0;
- }
复制代码
|
|