更改外观样式

来源:互联网 发布:企业管理网络培训 编辑:程序博客网 时间:2024/06/09 15:42
在MainFrame中更改窗口大小、标题、图标
窗体创建之前更改:
可在CxxxApp中的InitInstance中加入如下(红色)代码:
m_pMainWnd->SetWindowPos(NULL,200,200,600,500,SWP_NOMOVE); 
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();

或者在CMainFrame::PreCreateWindow()中
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;
cs.lpszName="http://www.sunxin.org";
//更改图标
//cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,0,0,
LoadIcon(NULL,IDI_WARNING));

//设置默认样式
//cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW);
return TRUE;
}

窗体创建之后更改:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
//设置标题可更改
SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);
//取消最大化按钮
SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE) & ~WS_MAXIMIZEBOX);
//设置图标
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcon(NULL,IDI_ERROR));
return 0;
}

在View中更改窗口背景、光标
窗体创建之前更改:
BOOL CStyleView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
//  the CREATESTRUCT cs

//设置箭头光标、黑色背景
cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,
LoadCursor(NULL,IDC_CROSS),(HBRUSH)GetStockObject(BLACK_BRUSH),0);
//设置默认样式(背景是透明的)
cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW);

return CView::PreCreateWindow(cs);
}

窗体创建之后更改:
int CStyleView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
//设置(黑色)背景
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(BLACK_BRUSH));
//设置(帮助)光标
SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)LoadCursor(NULL,IDC_HELP));

return 0;
}