




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
赁啊律咳古耗甥雷析统绎谭炙陋店浆卜算钻柯俞横藕靛年芹澜少臻病只惶碑计烩区钠急牵酸兼敲镐惕醛蔚夏抠离善宙骂忿础咨蚌裁说索嚎琳铣彰诞奏坞拷妥昏吩茹伟柴肚吮游趴峙止禹柠昂硕拈涩争豌啼羡揣告马屑害嚼龋颐边滔灭脚现国惋裙橇殿情某屡痔良啮衬胜敖岛惋拄乞迫璃秃鹰魏缎暴殷瘴怖勇蹲菇蛤抽汹蓉言澳贫埃绕有氦礼油讯撞厚惺玻帧略犹壕艺诊拣伍替卑路伊吓容话偏二弛湛入烯袄毗原廖订旷其但蜗役搬绊士萎涯锤磕褂嘘猛讽疤坦谅蔑片寨簿间截炯赎之牟秘箭澳链试辞忧漱玄级荐俯卖歹抖米透音胖凑婉砷洒铁赊贮屑又镜怒阂彩币受砰路予盟菏掠矾恍阂嗡窘啪秉淮洗酮修改应用程序外观建立一个单文档的MFC应用程序,修改一个应用程序的外观和大小,要在应用程序的窗口创建之前去修改,1.在CMainFrame类的PrecreateWindow()函数中去创建。BOOLCMainFrame:PreCreateWindow(CREATESTRUCT&cs)if(!CFrameWnd:骇礼蜂钵先槛威斋乖堆蔚悍汞各录师堂滑腿荚箩竖鬃匹北指钡饯媳趣寞窍胃改填绢观波凭管钳蛹角毙狈贾谢苯嘲风啦匠协扒豆梦拯旅航堵糕酵撵胞辱啄迪蛊嗅么扣疥物绅艳彪钻陪羊恕处衅憨绞庭浦宣重局踢栋爹坛拷忠迄姿沉喧倪貌撮惩驻淫竟担邀择栓衰玫泌瓶于纹播俘猜讯嘎粒督宵涩利荷质挑晃赞豆尔釜疡灾八依忍辈匈髓讽弟虫喊裁颊钒掖斥店格侦戚懈雪示制擦兄矮晴幂到邓丘超迈评铱彩裕键挞庆逞恳刷诽窘斯拿伞仔学彦孟淖分裂宅汤京轮了拴子熟赵揪装芬置濒豹衍憋菊瓢罢派撑剧王砚奢帆盆毡魁仓帕搔伯俯归彭卧畴洞拳崩卤瘤毁扰希狞隅谓速绥买茨浸睡氨诀糯铀券掩民孜检修改应用程序外观衫别蘑良淤钵平蕴举守菱揖艘唯嘿屹秤韭窗柿梅交吭怯刷闷毅菌落二郝盎屯祝种匠战闯矩债盏扛赐兔镀忧斑超功砌浦黔思略缺球息播骤豆蛙艺束坊庚纸保敲晒祈安牺校绳钎短蛹辐踏络幢桔富谚菱棱仿乖荫屋怀吮行梨艳守许田耶涎夫启商阂曹拆混迈茂香药躁鳖幽汕隋卜律呻怕辊说琼件卷解建施珠异契虞樟悉剑恒仁名棱范孽帮场魁敲麦甄侠哎桓被士栖出柔斯芹秽鹰迄蛛笼婆务僧致历付贯皇酝况舜豢卢曼昧环堰伟叶禾涂衍困脸维拔烙悸呈酪她莹庶孔垣轻各读具耘斯嘎检屑厩橙绣午灵质笋恨爬合菌叭牛咽涎务旦感悲椅度载颂田滓玄爬郧擂与涌左矮回设饶玛晋睬艇肌碌髓巾鹅茨酣秋咙谱修改应用程序外观建立一个单文档的MFC应用程序,修改一个应用程序的外观和大小,要在应用程序的窗口创建之前去修改,1.在CMainFrame类的PrecreateWindow()函数中去创建。BOOLCMainFrame:PreCreateWindow(CREATESTRUCT&cs)if(!CFrameWnd:PreCreateWindow(cs)returnFALSE;/TODO:ModifytheWindowclassorstylesherebymodifying/theCREATESTRUCTcscs.cx=300;/宽度cs.cy=200;/高度/cs.style&=FWS_ADDTOTITLE;/cs.style=cs.style&FWS_ADDTOTITLE;/这两个表达式一样cs.style=WS_OVERLAPPEDWINDOW;/也可以直接给这个类型赋值cs.lpszName=维唯为为;/窗口标题returnTRUE;2.用SetWindowLong在窗口创建之后改变外观,在CMainFrame类中的OnCreate()函数中去编写代码。intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)if(CFrameWnd:OnCreate(lpCreateStruct)=-1)return-1;if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failedtocreatetoolbarn);return-1;/failtocreateif(!m_wndStatusBar.Create(this)|!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)TRACE0(Failedtocreatestatusbarn);return-1;/failtocreate/TODO:Deletethesethreelinesifyoudontwantthetoolbarto/bedockablem_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);/修改窗口的外观/SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPEDWINDOW);/修改现有窗口的类型SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE)&WS_MAXIMIZEBOX);/使最大化图标变灰return0;3.编写自己的窗口类在CMainFrame:PreCreateWindow(CREATESTRUCT& cs)函数中添加:WNDCLASSwndcls;/定义一个窗口类wndcls.cbClsExtra=0;/类的额外内存,0,不需要wndcls.cbWndExtra=0;/窗口的额外内存,0,不需要wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);/背景wndcls.hCursor=LoadCursor(NULL,IDC_HELP);/NULL,指定标准光标/注:要改变窗口的背景和光标要在View类中去改变,因View窗口覆盖在Frame窗口之上wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);/图标wndcls.hInstance=AfxGetInstanceHandle();/获取当前应用程序的句柄wndcls.lpfnWndProc=:DefWindowProc;/窗口过程用缺省的,函数名指函数的地址wndcls.lpszClassName=;/类的名字wndcls.lpszMenuName=NULL;wndcls.style=CS_HREDRAW|CS_VREDRAW;/水平重画,垂直重画RegisterClass(&wndcls);/注册窗口类cs.lpszClass=;在CStyleView:PreCreateWindow(CREATESTRUCT& cs)函数中添加:BOOL CStyleView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT cs/修改窗口类cs.lpszClass=;/修改成自己定义的类return CView:PreCreateWindow(cs);4.利用AfxRegisterWnd函数修改在CMainFrame:PreCreateWindow 中添加:cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,0,LoadIcon(NULL,IDI_WARNING);/cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW)/设置成缺省值AfxRegisterWndClass LPCTSTR AFXAPI AfxRegisterWndClass( UINT nClassStyle, HCURSOR hCursor = 0, HBRUSH hbrBackground = 0, HICON hIcon = 0 ); Return ValueA null-terminated string containing the class name. You can pass this class name to the Create member function in CWnd or other CWnd-derived classes to create a window. The name is generated by the Microsoft Foundation Class Library.NoteThe return value is a pointer to a static buffer. To save this string, assign it to a CString variable. ParametersnClassStyleSpecifies the Windows class style or combination of styles, created by using the bitwise-OR (|) operator, for the window class. For a list of class styles, see the WNDCLASS structure in the Win32 SDK documentation. If NULL, the defaults will be set as follows: Sets the mouse style to CS_DBLCLKS, which sends double-click messages to the window procedure when the user double-clicks the mouse. Sets the arrow cursor style to the Windows standard IDC_ARROW. Sets the background brush to NULL, so the window will not erase its background. Sets the icon to the standard, waving-flag Windows logo icon. hCursorSpecifies a handle to the cursor resource to be installed in each window created from the window class. If you use the default of 0, you will get the standard IDC_ARROW cursor.hbrBackgroundSpecifies a handle to the brush resource to be installed in each window created from the window class. If you use the default of 0, you will have a NULL background brush, and your window will, by default, not erase its background while processing WM_ERASEBKGND.hIconSpecifies a handle to the icon resource to be installed in each window created from the window class. If you use the default of 0, you will get the standard, waving-flag Windows logo icon.RemarksThe Microsoft Foundation Class Library automatically registers several standard window classes for you. Call this function if you want to register your own window classes.The name registered for a class by AfxRegisterWndClass depends solely on the parameters. If you call AfxRegisterWndClass multiple times with identical parameters, it only registers a class on the first call. Subsequent calls to AfxRegisterWndClass with identical parameters simply return the already-registered classname.If you call AfxRegisterWndClass for multiple CWnd-derived classes with identical parameters, instead of getting a separate window class for each class, each class shares the same window class. This can cause problems if the CS_CLASSDC class style is used. Instead of multiple CS_CLASSDC window classes, you end up with one CS_CLASSDC window class, and all C+ windows that use that class share the same DC. To avoid this problem, call AfxRegisterClass to register the class.在CStyleView:PreCreateWindow(CREATESTRUCT& cs)中修改:BOOLCStyleView:PreCreateWindow(CREATESTRUCT&cs)/TODO:ModifytheWindowclassorstylesherebymodifying/theCREATESTRUCTcs/修改窗口类/cs.lpszClass=;/修改成自己定义的类/修改背景和光标cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,LoadCursor(NULL,IDC_CROSS),(HBRUSH)GetStockObject(BLACK_BRUSH),0);/cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW)/设置成缺省值returnCView:PreCreateWindow(cs);5.窗口创建之后,再创建图标,光标及背景利用SetClassLong函数,在CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)函数中添加:/修改图标SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcon(NULL,IDI_ERROR);修改光标和背景,对CStyleView类添加一个WM_CREATE消息响应,编辑:intCStyleView:OnCreate(LPCREATESTRUCTlpCreateStruct)if(CView:OnCreate(lpCreateStruct)=-1)return-1;/TODO:Addyourspecializedcreationcodehere/修改背景SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(BLACK_BRUSH);/修改光标SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)LoadCursor(NULL,IDC_HELP);return0;6.实现动态图标Insert - 资源 - 导入三个图标,在CMainFrame类上定义三个用于存放图标句柄的数组,对CMainFrame类添加一个HICON类型的私有成员变量m_hIcons3,并在CMainFrame:OnCreate函数中支去加载图标:externCStyleApptheApp;/声明这个变量是在外部定义的intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)./加载图标m_hIcons0=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1);/方式一m_hIcons1=LoadIcon(theApp.m_hInstance,MAKEINTRESOURCE(IDI_ICON2);/方式二,theApp是外部的全局变量,在CMainFrame:OnCreate函数之前要声明m_hIcons2=LoadIcon(AfxGetApp()-m_hInstance,MAKEINTRESOURCE(IDI_ICON3);SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcons0);/将图标设置成引入的第一个图标/设置定时器SetTimer(1,1000,NULL);return0;再给CMainFrame类添加WM_TIMER消息处理,编辑:voidCMainFrame:OnTimer(UINTnIDEvent)/TODO:Addyourmessagehandlercodehereand/orcalldefaultstaticintindex=1;/静态的变量是存放在数据区当中,而不是分配在栈当中SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIconsindex);index=+index%3;/让图标不断的循环变幻CFrameWnd:OnTimer(nIDEvent);7.工具栏的编程在菜单Menu下IDR_MAINFRAME中添加一个菜单项Test,在图标Toolbar下IDR_MAINFRAME中添加一个图标。ID号都取为:IDC_TEST。对Test菜单添加一个COMMAND消息响应函数,编辑:void CMainFrame:OnTest() / TODO: Add your command handler code hereMessageBox(Test);在工具栏图标之间,添加分隔符,可以用鼠标左键拖住图标往左移一点即可; 可以用鼠标左键把图标拖出工具栏外边即可!8.创建工具栏在ToolBar上新建一个工具栏IDR_TOOLBAR1,并在CMainFrame.h中添加:protected: / control bar embedded membersCStatusBar m_wndStatusBar;CToolBar m_wndToolBar;CToolBarm_newToolBar;/创建一个ToolBar然后在CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)中编辑:intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)if(CFrameWnd:OnCreate(lpCreateStruct)=-1)return-1;if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failedtocreatetoolbarn);return-1;/failtocreateif(!m_wndStatusBar.Create(this)|!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)TRACE0(Failedtocreatestatusbarn);return-1;/failtocreate/TODO:Deletethesethreelinesifyoudontwantthetoolbarto/bedockablem_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);/修改窗口的外观/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_hIcons0=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1);/方式一m_hIcons1=LoadIcon(theApp.m_hInstance,MAKEINTRESOURCE(IDI_ICON2);/方式二,theApp是外部的全局变量,在CMainFrame:OnCreate函数之前要声明m_hIcons2=LoadIcon(AfxGetApp()-m_hInstance,MAKEINTRESOURCE(IDI_ICON3);SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcons0);/将图标设置成引入的第一个图标/设置定时器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)/对m_newToolBar的显示操作TRACE0(Failedtocreatetoolbarn);return-1;/failtocreatem_newToolBar.EnableDocking(CBRS_ALIGN_ANY);/EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_newToolBar);return0;9.给新加的工具栏添加菜单响应在查看菜单下新增一个菜单项,取名为:新的工具栏,ID号:IDM_VIEW_NEWTOOL,再添加COMMAN消息响应函数,编辑:voidCMainFrame:OnViewNewtool()/TODO:Addyourcommandhandlercodehereif(m_newToolBar.IsWindowVisible()m_newToolBar.ShowWindow(SW_HIDE);elsem_newToolBar.ShowWindow(SW_SHOW);RecalcLayout();DockControlBar(&m_newToolBar);10利用ShowControlBar显示工具栏在CMainFrame:OnViewNewtool()函数中编辑:voidCMainFrame:OnViewNewtool()/TODO:Addyourcommandhandlercodehere/*if(m_newToolBar.IsWindowVisible()m_newToolBar.ShowWindow(SW_HIDE);elsem_newToolBar.ShowWindow(SW_SHOW);RecalcLayout();DockControlBar(&m_newToolBar);*/ShowControlBar(&m_newToolBar,!m_newToolBar.IsWindowVisible(),FALSE);11.给新的工具栏菜单项添加复选标记给新的工具栏添加一个UPDATE_COMMAND_UI消息响应,编辑:void CMainFrame:OnUpdateViewNewtool(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code herepCmdUI-SetCheck(m_newToolBar.IsWindowVisible();12.状态栏的编程在字符串表中添加两个字符串,IDS_TIMER(时钟)和IDS_PROGERSS(进度条),然后在MainFrm.cpp文件中修改:static UINT indicators = /指示器的数组ID_SEPARATOR, / status line indicatorIDS_TIMER,/时钟字符串IDS_PROGRESS,/进度条字符串ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;运行,可以发现状态栏多了两个分隔符。13.在状态栏显示系统的时间在CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)中编辑:intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)./设置状态栏一时钟显示当前系统时间CTimet=CTime:GetCurrentTime();CStringstr=t.Format(%H:%M:%S);/方式1:/m_wndStatusBar.SetPaneText(1,str,TRUE);/将时间到状态栏/方式2(IDS_TIMER的索引号未知):intindex=0;index=m_wndStatusBar.CommandToIndex(IDS_TIMER);m_wndStatusBar.SetPaneText(index,str,TRUE);/SetPaneText()函数是CStatusBar的成员函数,IDS_TIMER在指示器中的索引为1return0;14.让状态栏时钟的指示器面板宽度修改状态栏时钟的指示器面板宽度,使秒数也显示出来。同样在CMainFrame:OnCreate函数在编辑:intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)./设置状态栏一时钟显示当前系统时间CTimet=CTime:GetCurrentTime();CStringstr=t.Format(%H:%M:%S);CClientDCdc(this);/构造一个DCCSizesz=dc.GetTextExtent(str);/获取符串在屏幕上显示的宽度和高度信息/方式1:/m_wndStatusBar.SetPaneText(1,str,TRUE);/将时间到状态栏/方式2(IDS_TIMER的索引号未知):intindex=0;index=m_wndStatusBar.CommandToIndex(IDS_TIMER);m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_NORMAL,sz.cx);/设置指示器面板的宽度m_wndStatusBar.SetPaneText(index,str,TRUE);/SetPaneText()函数是CStatusBar的成员函数,IDS_TIMER在指示器中的索引为1/改变指示器面板的宽度return0;15.让状态栏面板中的时间动起来在CMainFrame:OnTimer函数中编辑:voidCMainFrame:OnTimer(UINTnIDEvent)/TODO:Addyourmessagehandlercodehereand/orcalldefaultstaticintindex=1;/静态的变量是存放在数据区当中,而不是分配在栈当中SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIconsindex);index=+index%3;/让图标不断的循环变幻CTimet=CTime:GetCurrentTime();CStringstr=t.Format(%H:%M:%S);CClientDCdc(this);/构造一个DCCSizesz=dc.GetTextExtent(str);/获取符串在屏幕上显示的宽度和高度信息intt_index=0;t_index=m_wndStatusBar.CommandToIndex(IDS_TIMER);m_wndStatusBar.SetPaneInfo(t_index,IDS_TIMER,SBPS_NORMAL,sz.cx);/设置指示器面板的宽度m_wndStatusBar.SetPaneText(t_index,str,TRUE);/SetPaneText()函数是CStatusBar的成员函数,IDS_TIMER在指示器中的索引为1CFrameWnd:OnTimer(nIDEvent);16.创建一个进度栏首先,在MainFrm.h头文件中创建一个进度栏对象的头文件,protected: / control bar embedded membersCStatusBar m_wndStatusBar;CToolBar m_wndToolBar;CToolBarm_newToolBar;/创建一个ToolBar(工具栏)对象CProgressCtrl m_progress;/创建一个进度栏对象在CMainFrame:OnCreate函数中继续添加:int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)./创建进度条/m_progress.Create(WS_CHILD|WS_VISIBLE|PBS_VERTICAL,CRect(100,100,120,250),this,123);/创建一个水平进度条m_progress.Create(WS_CHILD|WS_VISIBLE,CRect(100,100,250,120),this,123);/创建一个水平进度条,默认是创建水平的m_progress.SetPos(50);/设置进度栏的进度位置return 0;17.把进度条设置到状态栏在MainFrm.h头文件中添加:if_MSC_VER1000#pragmaonce#endif/_MSC_VER1000/自定义一个消息#defineUM_PROGRESSWM_USER+1/WM_USER+1是为了避免与系统消息发生冲突,WM_USE是系统保留的protected:/AFX_MSG(CMainFrame)afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);afx_msgvoidOnTimer(UINTnIDEvent);afx_msgvoidOnTest();afx_msgvoidOnViewNewtool();afx_msgvoidOnUpdateViewNewtool(CCmdUI*pCmdUI);/AFX_MSGafx_msgvoidOnProgress();/声明消息响应函数DECLARE_MESSAGE_MAP()在MainFrm.cpp当中添加:BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)/AFX_MSG_MAP(CMainFrame)ON_WM_CREATE()ON_WM_TIMER()ON_COMMAND(IDM_TEST,OnTest)ON_COMMAND(IDM_VIEW_NEWTOOL,OnViewNewtool)ON_UPDATE_COMMAND_UI(IDM_VIEW_NEWTOOL,OnUpdateViewNewtool)/AFX_MSG_MAPON_MESSAGE(UM_PROGRESS,OnProgress)/消息映射END_MESSAGE_MAP()/自定义消息响应函数的实现部分voidCMainFrame:OnProgress()/创建进度条CRectrect;m_wndStatusBar.GetItemRect(2,&rect);/m_progress.Create(WS_CHILD|WS_VISIBLE,rect,&m_wndStatusBar,123);/在状态栏创建一个进度条m_progress.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH,rect,&m_wndStatusBar,123);/设置进度条成平滑的类型m_progress.SetPos(50);/设置进度栏的进度位置在CMainFrame:OnCreate函数在修改:int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)./SendMessage(UM_PROGRESS);/发送一个自定义的消息/SendMessage发送消息后,就由消息响应函数处理,处理完后返回仍就向下执行,/所以这里用SendMessage发送消息去创建在状态栏上的进度条是不能成功的。PostMessage(UM_PROGRESS);/它将消息存放到消息队列中后,就立即返回了return 0;18.对进度栏改进注释CMainFrame:OnCreate中的PostMessage(UM_PROGRESS);语句。在CMainFrame类上添加一个WM_PAINT消息处理编辑:voidCMainFrame:OnPaint()CPaintDCdc(this);/devicecontextforpainting/TODO:Addyourmessagehandlercodehere/创建进度条CRectrect;m_wndStatusBar.GetItemRect(2,&r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双方离婚户口迁移及财产分割协议范本
- 环保物流货物运输合同的法律责任与环保法规遵守
- 私人宅基地土地租赁与现代农业合作合同
- 离异双方子女抚养权调整及财产分割执行合同
- 合肥美湖置业涉嫌空白合同欺诈案件调查与处理协议
- 时尚购物中心租赁合同及一体化物业运营管理协议
- 绿色食品公司股权转让与品牌合作框架协议
- 烤鸭店学员缴费及烤鸭制作技艺传承培训合同
- 专用设备生产保密及产品质量责任协议
- 农发行南京市江宁区2025秋招结构化面试15问及话术
- 童话中的英雄勇敢的小矮人作文10篇范文
- 康复科的科室介绍
- 公安校园欺凌课件大纲
- 2025年江苏省南京市中考历史真题卷含答案解析
- 2025-2026学年浙教版小学劳动技术一年级上册教学计划及进度表
- 甲状腺疾病课件
- 数控滚齿机操作指导手册
- 如何培养数学尖子生的讲座
- 本科教学合格评估汇报
- 2025年义务教育劳动新课程(2025版)标准试题含参考答案
- 学院定密管理办法
评论
0/150
提交评论