gpt4 book ai didi

c++ - WinAPI : Handling custom and default non-client controls

转载 作者:行者123 更新时间:2023-11-27 23:29:32 25 4
gpt4 key购买 nike

非客户端控件事件均默认由DefWindowProc控制。我想创建自己的自定义非客户端控件;这使我拦截了 WM_NCPAINT 消息,并可能创建了我自己的句柄来控制非客户区中的窗口。如果我要创建一个最小化或最大化按钮,那么我将不得不重新创建(从头开始?)并拦截默认 Windows 过程应该处理的所有事件,因为我的自定义按钮的大小、位置和属性不是与默认的相同。但是,我仍然不太确定这是否是人们创建模仿默认非客户端控件的自定义非客户端控件的常见方式,所以我想确定我是否在正确的轨道上:

  1. 不传入默认窗口样式指定创建非客户端控件(最小化的存在,最大化,关闭按钮)
  2. 创建我自己的窗口控件(用于例如按钮)在非客户区内
  3. 截获所有相关信息他们。如果自定义窗口是默认一个,例如最小化按钮,然后发送消息涉及那个按钮? (然而,我只看到WM_CLOSE 消息,没有WM_MINIMIZE 或 WM_MAXIMIZE)

我在处理所有默认程序时遇到麻烦;如果可能的话,我想看看 DefWindowProc 里面有什么(这样我就可以模仿他们的功能并同时添加我的功能)

最佳答案

如果您想要自定义所有内容,这听起来很不错。如果您绝对必须对您的用户施加一些“噪音”,那么只需将您的东西放在客户区即可,并且不要有任何非客户区(无边框等)。您可能必须实现窗口拖动,但我认为仅此而已。

干杯,

关于c++ - WinAPI : Handling custom and default non-client controls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6490627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com