首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有关处理ON_WM_NCPAINT()消息和OnNCPaint()覆盖的问题。(覆盖默认MFC窗口边框) [2020]

处理ON_WM_NCPAINT()消息和OnNCPaint()覆盖的问题是与MFC(Microsoft Foundation Class)框架相关的。MFC是微软提供的一套用于开发Windows应用程序的C++类库。

ON_WM_NCPAINT()是一个消息映射宏,用于处理非客户区(Non-Client Area)的绘制消息。非客户区是指窗口的边框、标题栏、菜单栏等不包含客户区域的部分。当窗口的非客户区需要进行绘制时,系统会发送ON_WM_NCPAINT()消息给窗口,开发者可以通过重写OnNCPaint()函数来处理这个消息。

OnNCPaint()是一个成员函数,用于处理ON_WM_NCPAINT()消息。通过重写OnNCPaint()函数,开发者可以自定义非客户区的绘制逻辑,例如修改窗口边框的样式、绘制自定义的标题栏等。

覆盖默认MFC窗口边框是指通过重写OnNCPaint()函数来自定义绘制窗口边框的样式。默认情况下,MFC框架会使用系统提供的窗口边框样式来绘制非客户区。但是通过覆盖OnNCPaint()函数,开发者可以实现自定义的窗口边框样式,从而改变窗口的外观。

在处理ON_WM_NCPAINT()消息和覆盖OnNCPaint()函数时,可以使用一些相关的MFC类和函数来实现特定的效果。以下是一些常用的类和函数:

  1. CWnd类:表示一个窗口对象,提供了一些用于操作窗口的方法和属性。
  2. CDC类:表示设备上下文,用于绘制图形和文本。
  3. CRect类:表示一个矩形区域,用于指定绘制的区域。
  4. CPen类和CBrush类:表示画笔和画刷,用于指定绘制的颜色和样式。
  5. GetWindowDC()函数:获取窗口的设备上下文。
  6. GetWindowRect()函数:获取窗口的矩形区域。

通过使用这些类和函数,可以在OnNCPaint()函数中实现自定义的非客户区绘制逻辑,从而改变窗口的边框样式。

关于ON_WM_NCPAINT()消息和OnNCPaint()函数的详细信息,可以参考以下腾讯云相关产品和文档:

  1. 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  2. 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  3. 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  4. 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  5. 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  6. 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  7. 腾讯云移动开发(Mobile):https://cloud.tencent.com/product/mobile
  8. 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  9. 腾讯云区块链(BCBaaS):https://cloud.tencent.com/product/baas
  10. 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse

请注意,以上链接仅供参考,具体的产品和文档内容可能会有更新和变动。建议在访问链接时查看最新的产品信息和文档内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(一百二十一)列表弹窗PopupMenu和ListPopupWindow

    PopupMenu是种显示位置不固定的弹出菜单,因为它显示在参照控件下方,所以展示位置随着参照控件的位置变化而变化。而其他几种菜单的显示位置都是固定的,比如说选项菜单Options固定显示在屏幕下方,上下文菜单ContextMenu固定显示在屏幕中央,溢出菜单OverflowMenu固定显示在屏幕右上角,有关其他菜单的详细说明参见《Android开发笔记(六十五)多样的菜单》。 下面是PopupMenu的常用方法说明: 构造函数 : 构造一个PopupMenu对象,并指定该对象的参照控件。 inflate : 根据指定的菜单资源文件,把具体的菜单项目填充到PopupMenu对象中。 setOnMenuItemClickListener : 设置菜单项的点击监听器。该监听器由接口OnMenuItemClickListener派生而来,要重写onMenuItemClick方法来实现菜单项点击事件。 show : 显示弹出菜单。 dismiss : 关闭弹出菜单。 setOnDismissListener : 设置弹出菜单的关闭监听器。 下面是PopupMenu的使用截图:

    03

    页面彈出各种窗口詳解

    一、 基本变化 <SCRIPT LANGUAGE="javascript"> </SCRIPT> 参数解释: window.open 弹出新窗口的命令; 'page.html' 弹出窗口的文件名; 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; 100 窗口高度; width=400 窗口宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏。 resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许; status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; 二、 弹启一个全屏窗口 加入fullscreen <SCRIPT LANGUAGE="javascript"> </SCRIPT> 三、 打开一个和按F11所见到的一样的窗口 加入channelmode <SCRIPT LANGUAGE="javascript"> </SCRIPT> 四、 打开一个连标题栏都没有的窗口(无标题、最小、最大、以及关闭按钮) <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <script language="javascript"> function unload() { var popUpSizeX=200; //窗口的宽度 var popUpSizeY=166; //窗口的高度 var popUpLocationX=2;//距离左边的距离 相当于 left var popUpLocationY=2;//距离顶端的距离 相当于 top // URL of the popUp var popUpURL="http://www.33d9.com/default.asp";; //打开页面的路径 // ** 下面的就不要随便改了 *** splashWin = window.open("",'x','fullscreen=1, ,scrollbars=auto,resizable=1'); splashWin.blur(); // Hide while updating window.focus(); splashWin.resizeTo(popUpSizeX,popUpSizeY); splashWin.moveTo(popUpLocationX,popUpLocationY); splashWin.location=popUpURL; } // END unload(); </script> </HEAD> <BODY></BODY></HTML> 看看,什么效果? 如果把resizable 设为0 scrollbars = no 呢? 五、 没有最大化按纽的窗口 其实也就是象软件的“关于我们”的那个窗口一样,下面就是用对话框窗口来实现它。 showModalDialog()以及showModelessDialog() 1.用showModalDialog() <html> <SCRIPT LANGUAGE="javascript"> </SCRIPT> http://w

    02
    领券