孙鑫 Lesson9 Style

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"));
}








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值