孙鑫VC课第九节笔记
来源:互联网 发布:钱学森 知乎 编辑:程序博客网 时间:2024/04/29 10:19
一.1.修改框架窗口,在窗口创建之前用
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
// 单文档的标题,是子窗口的标题想要改变,与原来的取反
//cs.style&=~FWS_ADDTOTITLE; 与原来的取反,
//或cs.style=WS_OVERLAPPEDWINDOW;
2.如果窗口已创建:在OnCreate 中用SetWindowLong(窗口句柄,要改的量,新的量)
要改的量:GWL_STYLE 窗口的外观
窗口句柄,m_hWnd//与窗口相关的窗口句柄
GetWindowLong,获的指定窗口的信息(窗口句柄,获的什么信息) 返回要获信息
SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE) &~WS_MAXIMIZEBOX);
改变窗口的光标和背景,在窗口类中完成的。
要想改变,注册一个自己的类,
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=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="sunxin.org";类名
wndcls.lpszMenuName=NULL;菜单名字
wndcls.style=CS_HREDRAW | CS_VREDRA//窗口类的类型
RegisterClass(&wndcls);//注册窗口类
cs.lpszClass="sunxin.org";*/
另外,光标和背景是应用程序类所控制的,应用程序类在框架类之上,框架类 可改图标
也可用AfxRegisterWndClass来
cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW);
3.如果窗口已创建:SetClassLong(在OnCreat中)
SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);
加载Icon
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));
小技巧:index=++index%3
4.工具栏编程:
(1)加入分割符方法;
(2)框架类创造工具栏方法(MSDN);
A.加入一个工具栏资源;
B.构建一个对像;
C.调用Creat或 createx
D.调用loadToolbar
E.EnableDocking和DockToolControlbar
F. if(m_newToolBar.IsWindowVisible())
{
m_newToolBar.ShowWindow(SW_HIDE);
}
else
{
m_newToolBar.ShowWindow(SW_SHOW);
}
RecalcLayout();//调整
DockControlBar(&m_newToolBar)//停靠工具栏
或ShowControlBar(&m_newToolBar,!m_newToolBar.IsWindowVisible(),FALSE);
pCmdUI->SetCheck(m_newToolBar.IsWindowVisible());显示复选
5.状态栏
(1)CStatusBar类己定义要想修改 在indicators中增加ID,定义一个字符串资源;再
f (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar/n");
return -1; // fail to create
}
(2)获得时间
CTime t=CTime::GetCurrentTime();
CString str=t.Format("%H:%M:%S");
(3)最后要 index=m_wndStatusBar.CommandToIndex(IDS_TIMER);/获得INDEX
m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_NORMAL,sz.cx);//设置指示器 面版的参数
m_wndStatusBar.SetPaneText(index,str);
(4)Cprogressctrl 、sendmessage,postmessage,PBS_SMOOTH,WM_USER, SetWindowPos,setstep和stepit,setrange,临时和持久的窗
详见MSDNt和(
http://www.hongen.com/pc/program/apitutor/api0011/api01.htm)
((CMainFrame*)GetParent())->m_wndStatusBar.SetWindowText(str);
((CMainFrame*)GetParent())->SetMessageText(str);
((CMainFrame*)GetParent())->GetMessageBar()->SetWindowText(str);
GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(str);
CView::OnMouseMove(nFlags, point);
6.启动画面添加组件splash screen
- 孙鑫VC课第九节笔记
- java笔记第九节
- 11.13第九节课
- 第九节课 - 新歌学习
- php学习笔记:第九节--高级--Date()
- 孙鑫vc++ 第一课 笔记
- 孙鑫vc++ 第一课 笔记
- 孙鑫 VC++ 第三课笔记
- 孙鑫vc学习笔记_第一课
- 孙鑫VC课第八节笔记
- 孙鑫VC第一课学习笔记
- 孙鑫VC第二课学习笔记
- 孙鑫VC第三课学习笔记
- 孙鑫VC第四课学习笔记
- 孙鑫VC第五课学习笔记
- 孙鑫VC++讲座笔记
- 孙鑫VC++讲座笔记
- 孙鑫VC++讲座笔记
- FTP命令行的一些使用技巧
- 出租司机给我上的MBA课(转载)
- 在DOS下解决注册表问题
- FTP的命令行的帮助
- 黑客通讯录
- 孙鑫VC课第九节笔记
- 安装SQL Server 错误
- Linux 常用命令
- 速度与激情
- Microsoft.XMLHttp组件的属性方法
- java多线程设计模式
- Linux文件处理的几个命令
- DataGrid控件
- Linux创建文件系统及挂载文件系统流程详解