搜索
查看: 397|回复: 7
打印 上一主题 下一主题

如何用API来创建一个按钮,MFC不能用

[复制链接]
跳转到指定楼层
楼主
发表于 2017-12-21 17:04:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题                                                                                                                                                                                    
沙发
发表于 2017-12-21 21:50:59 | 只看该作者
QT
板凳
发表于 2017-12-21 22:01:30 | 只看该作者
本帖最后由 创世菌 于 2018-7-26 08:53 编辑

去 C语言中文网 吧!
  1. //窗口过程
  2. LRESULT CALLBACK WndProc(
  3.     HWND hWnd,
  4.     UINT message,
  5.     WPARAM wParam,
  6.     LPARAM lParam
  7. ){
  8.     int wmId, wmEvent;
  9.     PAINTSTRUCT ps;
  10.     HDC hdc;
  11.     static HFONT hFont;
  12.     static HWND hBtn;
  13.     switch (message){
  14.         case  WM_CREATE:
  15.             //创建逻辑字体
  16.             hFont = CreateFont(
  17.                 -15/*高度*/, -7.5/*宽度*/, 0, 0, 400 /*一般这个值设为400*/,
  18.                 FALSE/*不带斜体*/, FALSE/*不带下划线*/, FALSE/*不带删除线*/,
  19.                 DEFAULT_CHARSET,  //使用默认字符集
  20.                 OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,  //这行参数不用管
  21.                 DEFAULT_QUALITY,  //默认输出质量
  22.                 FF_DONTCARE,  //不指定字体族*/
  23.                 TEXT("微软雅黑")  //字体名
  24.             );
  25.             //创建按钮控件
  26.             hBtn = CreateWindow(
  27.                 TEXT("button"), //按钮控件的类名
  28.                 TEXT("这是按钮"),
  29.                 WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT/*扁平样式*/,
  30.                 30 /*X坐标*/, 20 /*Y坐标*/, 150 /*宽度*/, 50/*高度*/,
  31.                 hWnd, (HMENU)2 /*控件唯一标识符*/, hInst, NULL
  32.             );
  33.             SendMessage(hBtn, WM_SETFONT, (WPARAM)hFont, NULL);//设置按钮字体
  34.             break;
  35.         case WM_PAINT:
  36.             hdc = BeginPaint(hWnd, &ps);
  37.             // TODO:  在此添加任意绘图代码...
  38.             EndPaint(hWnd, &ps);
  39.             break;
  40.         case WM_DESTROY:
  41.             //请做好善后工作
  42.             DeleteObject(hFont);
  43.             PostQuitMessage(0);
  44.             break;
  45.         default:
  46.             return DefWindowProc(hWnd, message, wParam, lParam);
  47.     }
  48.     return 0;
  49. }
复制代码

点评

妈呀[哭]  发表于 2018-1-4 17:41
骂我懒吧,骂我抄袭吧,我不在乎。  发表于 2017-12-21 22:09
懒得自己编了。  发表于 2017-12-21 22:08
地板
发表于 2017-12-22 20:27:09 | 只看该作者
devcpp没有mfc,所以mfc对我没用。

点评

我有啊哈C、C-Free、Visual Studio、Visual C++、Dev-C++......  发表于 2017-12-22 21:33
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表