1、如何修改窗口的外观与大小等
2、如何修改工具栏位置与停靠
3、如何设置状态栏的时间、进度、鼠标坐标
4、启动画面
代码:
//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));
m_hIcons[0]=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1));
m_hIcons[1]=LoadIcon(theApp.m_hInstance,MAKEINTRESOURCE(IDI_ICON2));
m_hIcons[2]=LoadIcon(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON3));
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1)));
SetTimer(1,1000,NULL);
if (!m_newToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT |CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_newToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}
m_newToolBar.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_newToolBar,AFX_IDW_DOCKBAR_RIGHT);
/*CRect rect;
m_wndStatusBar.GetItemRect(2,&rect);
//m_progress.Create(WS_CHILD|WS_VISIBLE |PBS_VERTICAL,CRect(100,100,120,200),this,123);
m_progress.Create(WS_CHILD|WS_VISIBLE |PBS_VERTICAL,rect,&m_wndStatusBar,123);
m_progress.SetPos(50);*/
//SendMessage(UM_PROGRESS);
PostMessage(UM_PROGRESS);
CSplash::ShowSplashScreen(this);
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
//cs.cx=300;
//cs.cy=200;
//cs.style&=~FWS_ADDTOTITLE;
//cs.style=WS_OVERLAPPEDWINDOW;
//cs.style=cs.style & ~FWS_ADDTOTITLE;
//cs.lpszName=_T("TEST RLJ");
/*WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbClsExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_HELP);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=AfxGetInstanceHandle();
wndcls.lpfnWndProc=::DefWindowProc;
wndcls.lpszClassName=(LPCWSTR)"rlj.org";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW|CS_VREDRAW;
RegisterClass(&wndcls);
cs.lpszClass=(LPCWSTR)"rlj.org";*/
//cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,0,LoadIcon(NULL,IDI_ERROR));
//cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW);
return TRUE;
}
void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
static int index=1;
SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcons[index]);
index=++index%3;
CTime t=CTime::GetCurrentTime();
CString str=t.Format("%H:%H:%S");
CClientDC dc(this);
CSize sz=dc.GetTextExtent(str);
int index1=0;
index1=m_wndStatusBar.CommandToIndex(IDS_TIMER);
m_wndStatusBar.SetPaneInfo(index1,IDS_TIMER,SBPS_NORMAL,sz.cx);
m_wndStatusBar.SetPaneText(index1,str);
m_progress.StepIt();
CFrameWndEx::OnTimer(nIDEvent);
}
void CMainFrame::OnTest()
{
// TODO: 在此添加命令处理程序代码
MessageBox(_T("test"));
}