欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    孙鑫C++视频教程总结内功算法+数据结构+编译原理+操作系统原理+软件工程+英文Word下载.docx

    • 资源ID:3481424       资源大小:28.14KB        全文页数:21页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    孙鑫C++视频教程总结内功算法+数据结构+编译原理+操作系统原理+软件工程+英文Word下载.docx

    1、/定义窗口句柄并创建窗口 ShowWindow(hwnd,SW_SHOWNORMAL);/显示窗口 UpdateWindow(hwnd);/更新窗口 MSG msg;/定义消息对象 /*做消息循环*/while(GetMessage(&msg, /接收消息的窗口句柄。/从消息队列中取出一条消息NULL, /消息标识。0,0)/做消息循环 TranslateMessage(&msg); /进行消息(如键盘消息)转换 DispatchMessage(& /分派消息到窗口的回调函数处理, return 0;/回调函数原形为LRESULT CALLBACK WindowProc();LRESULT C

    2、ALLBACK WinSunProc(/对消息的响应函数(回调函数) HWND hwnd, / handle to window UINT uMsg, / message identifier WPARAM wParam, / first message parameter LPARAM lParam / second message parameter) switch(uMsg) case WM_CHAR:break; case WM_LBUTTONDOWN: MessageBox(hwnd,mouse clickedweixin,0); HDC hdc; hdc=GetDC(hwnd);

    3、TextOut(hdc,0,50,计算机编程语言培训,strlen(); ReleaseDC(hwnd,hdc); break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); TextOut(hDC,0,0,维新培训 EndPaint(hwnd,& case WM_CLOSE: if(IDYES=MessageBox(hwnd,是否真的结束?,MB_YESNO) DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); default:

    4、return DefWindowProc(hwnd,uMsg,wParam,lParam);总结:创建一个完整的窗口需要经过下面四个操作步骤:一,设计一个窗口类;如:WNDCLASS wndcls;二,注册窗口类; 如:RegisterClass(&三,创建窗口;CreateWindow(),CreateWindowEX();四,显示及更新窗口。ShowWindow(),UpdateWindow();二:VC+掌握的基础使用VC编程除了良好的C基础外还需要掌握两方面:消息本身。不同消息所代表的用户操作和应用程序的状态。对于某个特定的消息来说,要让OS执行某个特定的功能去响应消息。二1消息的分类

    5、:标准消息,命令消息,通告消息。标准消息:除WM_COMMAND之外,所有以WM_开头的消息。命令消息:来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND呈现。通过标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。通告消息:由控件产生的消息,如按钮的单击。1)从CWnd派生的类,可以接收到标准消息 命令消息和通告消息。2)从CCmdTarget派生的类,只能可以接收到命令消息和通告消息。三:两种函数调用约定(_stdcall 和 _cdecl)#define CALLBACK _stdcall/_stdcall 标准调用预定,是PASCAL 调用约

    6、定,象DELPHI使用的就是标准调用约定#define WINAPIV _cdecl / _cdecl 是C 语言形式的调用约定。主要区别:函数参数传递顺序 和 对堆栈的清除上。问题:除了那些可变参数的函数调用外,其余的一般都是_stdcall约定。但 C/C+编译默然的是_cdecl约定。所以如果在VC等环境中调用_stdcall约定的函数,必须要在函数声明的时加上_stdcall 修饰符,以便对这个函数的调用是使用_stdcall约定(如使用DELPHI编写的DLL时候)。(VC中可通过这途径修改:project|settings.|c/c+|.)四:关于DC句柄获取(CpaintDC/C

    7、clientDC/CwindowDC在创建时默认)(调用这些函数)a)使用BeginPaint(),EndPaint()对。注意只能在响应WM_PAINT消息时使用。b)使用GetDc(),ReleaseDC()对。注意他们不能在响应WM_PAINT中使用。MFC中的运用为 HDC hdc=:GetDc(m_hWnd); :ReleaseDC(m_hWnd,hdc); 获得全局DC。 CDC *pDC=GetDC();ReleaseDC(pDC); CClientDC dc(this);(自动调用GetDc(),ReleaseDC(); CWindowDC dc(this); (自动调用Get

    8、Dc(),ReleaseDC();五:MFC程序框架的剖析寻找WinMain人口:路径:visual c+安装目录下的:vc98|MFC|SRC|APPMODUL.CPP:寻找CWinApp构造函数:MFC|SRC|APPCORE.CPP:MFC程序框架主路线:CTEApp theApp- CWinApp:CWinApp()-_tWinMain()/进入程-AfxEndDeferRegisterClass(LONG fToRegister)- PreCreateWindow(创建、显示和更新窗口) pThread-Run(消息循环)- PumpMessage(/取消息并处理)类的运行顺序为:C

    9、*APP-CmainFram-C*View-C*Doc六:消息映射的三步骤:在头文件中声明消息响应函数原型。afx_msg void OnLButtonDown(UINT nFlags, CPoint point);在源文件中进行消息映射。ON_WM_LBUTTONDOWN()源文件中进行消息响应函数的定义。void CDrawView:OnLButtonDown(UINT nFlags, CPoint point)七:使用画笔、画刷、字体的步骤:(包括设计绘图模式SetROP2()CPen pen(PS_DOT,1,RGB(0,255,0);/构造画笔对象 CClientDC dc(this

    10、); CPen *pOldPen=dc.SelectObject(&pen);/将画笔选入DC后就可以作画了dc.SelectObject(pOldPen);CBrush *pBrush=CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH);/构造透明画刷对象FromHandle()将对象句柄转换为对象指针GetStockObject()取得一个以预定义的画笔、画刷、字体的句柄.类为Cpen Cbrush CFont设计绘图模式: dc.SetROP2(R2_BLACK);(查MSDN).八:创建插入符:CDC类(文字等的输出类)CClient

    11、DC dc(this);TEXTMETRIC tm;dc.GetTextMetrics(&tm);/ 获取当前字体信息的度量CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);ShowCaret();/ void CreateCaret( CBitmap* pBitmap );/创建位图插入符/static void PASCAL SetCaretPos( POINT point );/设计插入符号的位置九:创建路径层:BOOL BeginPath( );/在这作图定义路径层剪切区域BOOL EndPath( );BOOL SelectClipP

    12、ath( int nMode );/调用这个函数来使当前路径层剪切区域与新剪切区域进行互操作。 应用:当作图的时候,如果想要在整幅图形其中的某个部分和其它部分有所区别,我们可以把这部分图形放到路径层当中,然后指定调用指定互操作模式调用SelectClipPath( int nMode )函数来使路径层和覆盖在其上新绘图剪切区域进行互操作,达到特殊效果。十:设置定时器SetTimer(1,100,NULL);/放置定时1器并发送WM_TIMER消息作WM_TIMER消息响应并对Void OnTimer(UINT nIDEvent)编写代码。十一:CMenu类CMenu 类重要函数:CMenu*G

    13、etMenu得到窗口菜单栏对象指针。CMenu:GetSubMenu获得指向弹出菜单对象指针 / SetMenu( CMenu* pMenu ) 设置新菜单或移除菜单DrawMenuBar()/重绘菜单/其它菜单的功能设计用MSDN查函数十二:创建自定义菜单CMenu menu;/定义为局部对象menu.LoadMenu(IDR_MAINFRAME);SetMenu(&menu);menu.Detach();/ 这里menu对象作为一个局部对象。使用Detach()从menu对象中分离窗口菜单句柄,从而当menu对象析构的时候窗口菜单资源不随之销毁。也可将menu;定义为全局对象。十三:对弹出

    14、式菜单项的命令更新给菜单项添加UPDATE_COMMAND_UI消息响应在响应函数中调用CcmdUI类的成员函数。十四:向系统添加(右键弹出式)菜单(上下文菜单)1系统添加法: Project-Add to Project-Components and Controls-Visual C+ conpenets-pop-upMenue-Insert-选择类(不能选CmainFram)其中系统增加的内容:A一个菜单资源;B,在派生View类中增加了OnContextMenu()函数2系统添加法:用资源管理器添加一个菜单资源在鼠标右键消息响应函数中,加载菜单资源,并获得要显示的子菜单指针,并用该指针

    15、调用TrackPopupMenu函数便完成任务 代码如下:CMenu menu;menu.LoadMenu(IDR_MENU1);CMenu *pPopup=menu.GetSubMenu(0);ClientToScreen(&point); /将一个坐标点或一个矩形区域坐标转换成屏幕坐标。pPopup-TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,this); /在指定位置以指定的方式显示弹出菜单。也可对菜单项做消息响应。2动态添加菜单法:在CmainFram类的OnCreate()中创建Cmenu对象调用其

    16、成员函数添加、插入、删除子菜单、菜单项手动给动态菜单项添加响应函数一:在Resource.h中可以添加资源的ID二:在头文件中写消息函数原型三在代码文件中添加消息映射和添加消息响应函数(注意手动添加要放在ClassWizard的规定的外面)十五:集合类:COBArray,CStringArray,CDWordArray,CPtrArray,CStringArray,CUIntArray,CWordArray十六:在CMainFrame中截获对菜单命令的处理由于CWnd:OnCommand 是个虚函数,可以在框架类中重写OnCommand函数,从而可以截获菜单消息使它不再往下(VIEW类)路由。

    17、例:BOOL CMainFrame:OnCommand(WPARAM wParam, LPARAM lParam) int MenuCmdId=LOWORD(wParam);/取命令ID CMenu2View *pView=(CMenu2View*)GetActiveView();/获取当前VIEW类指针 if(MenuCmdId=IDM_PHONE1 & MenuCmdIdm_strArray.GetSize()/消息范围判断 CClientDC dc(pView); dc.TextOut(0,0,pView-m_strArray.GetAt(MenuCmdId-IDM_PHONE1);re

    18、turn TRUE; /函数返回,避免调用CFrameWnd:OnCommand函数,在CFrameWnd:OnCommand中截获的消息会交由VIEW类处理 return CFrameWnd:OnCommand(wParam, lParam); /调用基类OnCommand函数,在CFrameWnd:十七:对话框类CDialog1 重要函数与成员变量每个窗口类创建的对象的同时都拥有一个窗口句柄m_hWnd的成员变量。GetDlgItem(IDC)= 关联一个变量; 通过控件ID 获得控件对象指针GetWindowText(CString& rString ) / /获得窗口、安键文本(cha

    19、r类型)int atoi( const char *string ); itoa()/ 把一个字符串与INT 类型的数值转为GetDlgItemText(IDC_EDIT1,ch1,10) =GetDlgItem(IDC_EDIT1)-GetWindowText(ch1,10);在一个窗口控件中直接读取文本到字符数组中INT GetDlgItemInt( ) /获得控件文本,并转换成数值类型SetFocus()设计窗口、控件的焦点。GetFocus()八;if(IDOK=dlg.DoModal()创建对话框后会等待用户作选择,就是DoModal、create的值。对编辑框Edit控件写入内容后

    20、会发送EN_change消息,2 问控件的六种方法:GetDlgItem(IDC_EDIT2)-Get(Set)WindowText(ch2,10);Get(Set)DlgItemText(IDC_EDIT2,ch2) 三:Get(Set)DlgItemInt(IDC_EDIT2) 四:每个控件关联一个变量,直接对变量进行操作。调用UpdateData()对控件取设计值。 或:变量.GetWindowText(ch1,10);取得数据 五:通过SDK函数或变量的成员函数发送WM消息完成消息任务:SendMessage(GetDlgItem(IDC_EDIT1)-m_hWnd,WM_GETTEX

    21、T,10,(LPARAM)ch1);m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);直接给ID控件发送消息:SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);十八:创建扩展窗口(收缩、扩展窗口) 创建一个图表框通过ID获得其矩形的位置,并通过CRect对象记录其矩形位置。GetDlgItem(IDC_)-GetWindowRect(&rectSeparator); /获得窗口大小GetWindowRect(&rectLarge);创建两个CRect对象通过点的付值记录其矩形位置收缩、扩展

    22、时的矩形位置。SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),SWP_NOMOVE | SWP_NOZORDER);/设置窗口大小与位置十九:设计焦点事件(Tab Stop)先对改变焦点事件做消息响应(如对回车ID_OK的响应)后 GetFocus()-GetNextWindow()-SetFocus();/对最后一个不能判断。 GetFocus()-GetWindow(GW_HWNDNEXT)-/对最后一个不能判断。GetNextDlgTabItem(GetFocus()-/最好回车事件为窗口缺损消息由ONOK()响应,可

    23、通过对控件属性设计为缺损做消息响应以接收这个消息。廿:查看/改变对话框控件排列的秩序在对话框资源界面中:Layout-Tab Order-改顺序。廿一:逃跑按钮的巧妙实现创建多个Cbutton控件,并建立基于Cbutton类,类中包含一个本类的成员变量。将控件关联成这个类的一个变量,同时使自己的成员变量指向下个控件ShowWindow(SW_HIDE);使自己隐藏,通过其成员变量m_pBtn-ShowWindow(SW_SHOW)使对方显示廿二:如何制作属性页对话框和向导对话框CpropertySheet类CpropertyPage类创建属性页:insert-Resource-Dailog-选

    24、择后三个之一(如IDD_PROPPAGE_LARGE).为各页添加控件并为各页创建以CpropertyPage(属性表单页类)为基类的属性表单页类.以CPropertySheet为基类创建属性表单类,并在表单类中添加各表单页的对象。要加头文件。在表单类的构造函数中用AddPage(&m_prop1);添加各表页。在View中做消息响应做显示触发器。编代码:.1构造表单对象(设计表单名).2调用propSheet.DoModal()或Create()显示页面。(注: 创建向导对话框在.2前调用SetWizardMode()设计各页(上一步、下一步等) 限制用户在不满足设定的条件时切换到其他属性页

    25、和向导页。:.1 在各页中添加OnSetActive()虚函数.2用表单指针调用SetWizardButtons()来设计。(CPropertySheet*)GetParent()- SetWizardButtons(PSWIZB_NEXT);其响应函数为虚函数OnWizardNext/Back/Finish(查看MSDN) return 1不进入下一页。廿三:单选按钮操作方法:对所有单选按钮的第一个按钮属性设为Group,并为它们关联一个int类型的变量(使用时可按其编号访问)选择后(要按下一步或ok键)对按键作消息响应,用UpdateDate()对所选取值。对适当事件作消息响应通过一新的i

    26、nt类型的变量取这个关联的变量。使用选择值时作消息响应,通过变量作switch()case选择,通过str+=程序员等方式取值并将选择输出。使用完后在使用类的构造函数中对数组初始化廿四:复选按钮操作方法:对所有复选按钮都关联一个Bool类型的变量(使用时可按其编号访问)(就一个函数)对适当事件作消息响应通过Bool类型数组记录每个关联变量的值。使用选择值时作消息响应,通过Bool类型数组多次if(m_bLike0)判断,通过str+=使用完后在使用类的构造函数中用memset()对数组初始廿五: 组合框操作方法:CcomboBox类做OnInitDialog()虚函数消息响应通过AddStri

    27、ng()初始化选项值。并通过(CComboBox*)GetDlgItem(IDC_COMBO2)-SetCurSel(0);负索引号值。对适当事件作消息响应通过int index=(CComboBox*)GetDlgItem(IDC_COMBO2)-GetCurSel();取得索引号。 (CComboBox*)GetDlgItem(IDC_COMBO2)-GetLBText(index,m_strSalary);通过索引号将值存入字符串中。对适当事件作消息响应通过新的CString类型变量记录这个字符串。使用选择值时作消息响应,通过CString类型变量以str+=等方式直接使用。廿六:列表框操作方法:ClistBox类对所有复选按钮都关联一个CString类型的变量.并做OnInitDialog()虚函数消息响应通过AddS


    注意事项

    本文(孙鑫C++视频教程总结内功算法+数据结构+编译原理+操作系统原理+软件工程+英文Word下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开