单文档修改窗体外观

方法1:窗口创建前,在CMainFrame的函数PreCreateWindow(CREATESTRUCT& cs)中,修改相应的CREATESTRUCT结构体的变量值。例如:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   if( !CFrameWnd::PreCreateWindow(cs) )
   {
        return FALSE;
    }

   // TODO: Modify the Window class or styles here by modifying
   // the CREATESTRUCT cs

   cs.cx=300;                   //修改窗口的宽
   cs.cy=200;                   //修改窗口的高
   cs.style &= ~FWS_ADDTOTITLE; //移除固定标题, 或者直接赋值 cs.style = WS_OVERLAPPEDWINDOW;

   return TRUE;
}


在单文档应用程序中,缺省的窗口类型是WS_OVERLAPPEDWINDOW和FWS_ADDTOTITLE,其中FWS_ADDTOTITLE 用来增加文档的标题到窗口的标题。如果想自定义固定的窗口标题,就要去掉FWS_ADDTOTITLE这种类型,参照如下代码:
          cs.style &= ~FWS_ADDTOTITLE;       //取反、并进行“与”操作
或者          cs.style = WS_OVERLAPPEDWINDOW;    
或者直接赋值 cs.lpszName = "固定的标题";


方法2:窗口创建之后,在CMainFrame的函数OnCreate(LPCREATESTRUCT lpCreateStruct)中,利用函数

LONG SetWindowLong(
  HWND hWnd,      	//handle of window
  int nIndex,      	//offset of value to set
  LONG dwNewLong    	//new value
);

hwnd:标识窗口,并且间接标只出该窗口的属的窗口类。
这个函数根据nIndex的取值不同,可以实现不同的功能。
其中nInde可以取:
GWL_EXSTYLE:        设置窗口扩展风格,即CreateWindowEx的DWORD wExStyle 参数
GWL_STYLE:            设置窗口风格,即CreateWindow的DWORD dwStyle参数
GWL_WNDPROC:    设置窗口的处理函数,即RegisterClass的WNDCLASSEX的WNDPROC lpfnWndProc成员
GWL_HINSTANCE:  设置窗口所属的应用程序句柄,即RegisterClass的WNDCLASSEX的HINSTANCE hInstance成员
GWL_ID 设置窗口的ID(对于控件,就是控件ID)
GWL_USERDATA: 设置窗口的用户自定义数据
DWL_DLGPROC: 设置对话框处理函数
DWL_MSGRESULT: 设置对话框消息处理的结果值
DWL_USER: 设置扩展区域数据


lNewLong:要设定的值。(函数LONG GetWindowLongHWND hWnd,int nlndex)取得窗口的原属性值, 在此基础上进行修改。)


下面对函数SetWindowLong()的调用实现窗口最大化按钮的无效:
SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE)& ~WS_MAXIMIZEBOX);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值