请教一下MFC中的控件是怎么实现的呢(通过调用什么样的API,传递什么参数)?一个按钮就是一个窗口?还是所有按钮画在一个分层窗口上再叠在主窗口上?还是直接在主窗口上画图?

我想到的是:

JavaScript code?

1

2

3

4

5

6

7

8

9

10

11

12

13

HWND hwndButtonWindow = ::CreateWindowEx(

        WS_EX_TRANSPARENT,        //拓展样式-穿透,使其上的点击等消息发送至其后的主窗口

        wndclass.lpszClassName,    //使用的窗口类名称

        L"button",                //窗口标题

        WS_POPUP | WS_CHILD,        //样式-弹出窗口(无标题栏)

        400,                        //x,该位置在主窗口上

        430,                        //y

        50,                        //w,按钮的宽

        30,                        //h,按钮的高

        hwnd,                    //父窗口句柄

        NULL,                    //菜单

        hInstance,                //程序实例句柄

        NULL);                    //用户数据

然后设置它随主窗口(hwnd)一起移动

引用 5 楼 smwhotjay 的回复:

控件就是控件,了解下win32 sdk编程 就知道了

好的,我看了一下Win32编程,上面说botton控件就是一个子窗口,在User32.dll加载时就已经注册好这个窗口类了,所以只要用“button”这个类名创建窗口就行了,当该窗口被点击时会向父窗口发送WM_COMMAND消息,其中LOWORD(wParam)指定了该子窗口(控件)的ID,lParam指定了该子窗口的句柄,而其上显示的文字其实是它的“标题”
应该就是这样:

C/C++ code?

1

2

3

4

5

6

7

8

9

10

11

12

13

::CreateWindowEx(

    0,                                                   //拓展样式:无

    "button",                                                     //窗口类:button

    "Start",                                                    //按钮显示文字:Start

    WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,     //WS是窗口样式,BS是按钮样式

    50,                                                    //窗口(按钮)的位置和尺寸

    50,

    80,

    30,

    hwnd,                                                   //父窗口句柄

    (HMENU)IDC_BUTTON,                                                   //系统菜单

    hInstance,                                                    //程序实例句柄

    NULL);

感谢这位前辈提供线索

一般 控件 都是 窗口 (hWnd), 无窗口的 叫 wndless, 是 直接绘制到 屏幕上的 。(DirectDraw)

言简意赅

MFC中的控件是怎么实现的呢?一个按钮就是一个窗口?还是所有按钮画在一个分层窗口上再叠相关推荐

  1. MFC中picture控件如何响应鼠标移动?

    MFC中picture控件如何响应鼠标移动? 2011-08-21 21:23 轻若惊鸿 | 浏览 3354 次 硬件网络 我将一个picture控件的属性中的Notify勾上了,但是只能响应鼠标按键 ...

  2. MFC中Listbox控件的简单使用

    MFC中listbox控件是为了显示一系列的文本,每个文本占一行. Listbox控件可以设置属性为: LBS_CHILD   :(默认)子窗口 LBS_Visible :(默认)可视 LBS_Mul ...

  3. (VC2005)MFC中添加控件的成员变量.

    VC 2005 中添加控件的成员变量. 方法一:使用变量添加向导. 右击控件->Add Variable (打开了 Add Member Variable Wizard)  -> 输入Va ...

  4. MFC中常见控件的操作

    1.下面的代码用于获取屏幕的长度和宽度  int iWidth = GetSystemMetrics(SM_CXSCREEN); // int iHeight = GetSystemMetrics(S ...

  5. MFC中CStatic控件动态改变

    我现在需要一个静态控件,当鼠标放上去时字体与颜色都要改变,当鼠标离开时在变回来. 现在可以改变字体,但是改变字的颜色还不行.我去网上搜了一下,两种方法,一个在父窗口中相应onctlcolor消息,但是 ...

  6. 关于错误码0x80040154 MFC中ACtiveX控件没有注册的正确解决方案

    今天遇到一个问题,以前VC++6.0做好的工程文件在另一台电脑上无法运行,并且报错, CoCreateInstance of OLE control {67397AA3-7FB1-11D0-B148- ...

  7. MFC中CSTATIC控件双击全屏/双击恢复

    双击全屏方法有两种 1.双击放大的时候调static控件的父句柄SerParent让控件的父句柄变成桌面,然后再提取桌面的分辨率用movewindow或者setwindowpos改变控件大小.恢复成原 ...

  8. MFC中树形控件的应用——电话簿

    一.电话薄的代码如下: 1. // PhoneDlg.cpp : implementation file //#include "stdafx.h" #include " ...

  9. MFC中Combo控件的使用

    Combo-box-control 组合框 示例: 实现父类继承下来的虚函数OnInitDialog(),并添加以下代码: r_combo1.InsertString(0,L"胡桃" ...

最新文章

  1. CSDN 居然免费送会员?程序员们快来领!
  2. 虚拟化通过更少的硬件以实现更多性能的提升
  3. android studio import android-source-code
  4. 在AspNetMvc中使用日志面板. Logdashboard 1.1beta
  5. Vue.js基础体验(一)
  6. 第六节:ES6为字符串String带来哪些好玩的特性?
  7. IE6和其他浏览器的css样式不同
  8. 小程序自定义tabbar custom-tab-bar 6s出不来解决方案,cover-view不兼容
  9. PLSQL Developer 特点
  10. 知网被引第一、第二的论文,都出自这位双一流大学教授
  11. UCGUI动态内存分析
  12. java详解 --- JOSN解析
  13. desktop window manager
  14. 用python画六边形
  15. Holy Grail 圣杯布局详解
  16. C++ LinuxWebServer 2万7千字的面经长文(上)
  17. 力扣1438.绝对差不超过限制——python
  18. 如何打造智能世界的数据底座?深耕华为云大数据,畅享价值最大化
  19. AlexNet网络具体介绍
  20. 星座查询-python

热门文章

  1. python贪吃蛇小游戏_python开发贪吃蛇小游戏
  2. UE4学习-使用蓝图进行一个关卡的设计
  3. mysql在linux下显示花_在Linux 中搭建 Mysql
  4. 计算机考研各个学校科目,计算机考研学校的前几个排名
  5. android shape 按钮背景_Android button, xml文件定义形状,代码中修改背景颜色
  6. winscp登陆windows服务器_基于OpenSSH+WinSCP完成Windows服务器之间的文件传输
  7. 为什么你学C++这么难?
  8. html转盘游戏,html5大转盘抽奖实例源码(基于vue.js)
  9. 成功解决tensorflow.keras: AttributeError: ‘str‘ object has no attribute ‘decode‘
  10. mysql高级之子查询,多表查询,外连接,集合操作,内部函数与数据控制_月隐学python第24课