MFC之修改窗口外观

改变窗口实在PreCreateWindow中进行操作,

因为 你需要在创建窗口之前,就要设定窗口的类型;

可以改变windows窗口的大小,FWS_DDTOTITLE WS_OVERLAPPEDWINDOW;


而在FWS_DOTOTITLE这个操作是把Doc窗口标题默认成为Fram窗口辩题;


 


在窗口创建之后也可以修改窗口属性;

OnCreate()中

SetWindowLong(HWND,int,LONG)


第一个是窗口的句柄,第二个所要改变属性的索引;第三个是改变索引对象的值;



SetWindowLong(this->m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);


改变GCL_STYLE属性窗口属性,改变为WS_OVERLAPPEDWIND;


LONG GetWindowLong(HWND,int);


得到窗口的属性的值;

SetWindowLong(this->m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GCL_STYLE)&~FWS_DDTOTITLE));



改变窗口外观可以使用在PreCreateWindow()中创建自己的窗口;


 STRUCT WNDCLASS wndcls;


然后设置window的属性;w

wnd.HINSTANCE = AfxGetInstanceHandle();

AfxGetInstanceHandle()是一个全局函数;

这里需要特别注意一下,


就是咋最后PreCreateWindow中需要最后一部,改为

cs.lpclassname = "---"这里填写的是你注册的窗口的名字//特别重点;


如果这里没有设置没有任何效果;

然后看到View类的光标和背景没有变,

为什么呢;

这是因为View覆盖了FRAM,我们只需要在

View中的PreCreateWindow()然后直接cs.lpclassname = ""你注册的窗口


这样之后你的窗口的背景和光标就变了;


总结一下;

修改图标用的是fram类,而修改背景和光标用的是view类;



最后还有一个改变光标和图标和背景;

在fram PreCreateWindow()中

AfxRegisterWndClass()这是一个全局函数;


cs.lpclassname = AfxRegisterWndClass(NULL,光标,背景,图标);

这里把得到的窗口名字改为了AfxRegisterWndClass得到的窗口名字;


在PreCreateWindow()中注册一个窗口类,而在OnCreate中设计窗口的

图标光标背景;

还有一个全局的在任何时候都可以改变窗口的属性;

OnCreate()函数中设计窗口的图标光标背景;

SetClassLong(NULL,GCL_HICON,设置的窗口图标)


GetClassLong();





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值