ImageVerifierCode 换一换
格式:PDF , 页数:20 ,大小:287.82KB ,
资源ID:1573465      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1573465.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(知识点-(3).pdf)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

知识点-(3).pdf

1、属性中的 Border 中的各个属性,分别表示什么Dialog Frame WS_CAPTION|WS_POPUP|WS_SYSMENU|WS_CLIPSIBLINGS|DS_MODALFRAMEWS_EX_DLGMODALFRAME|WS_EX_WINDOWEDGEThin比 Dialog Frame 缺少一个扩展属性 WS_EX_DLGMODALFRAMENone 比 Dialog Frame 缺少 WS_CAPTION|DS_MODALFRAME比 Dialog Frame 缺少扩展属性 WS_EX_DLGMODALFRAME|WS_EX_WINDOWEDGEResizing 比 Dia

2、log Frame 多一个属性 WS_THICKFRAME:Creates a window with a thick frame that can be used to size the window.(可调整窗口大小)Button 里面的属性 owner draw,就是自己画按钮,是按钮变得多姿多彩删除一个导入的 ICON,按键盘的 delete 按钮CWnd*AfxGetMainWnd();使用 AfxGetMainWnd 函数获取 MFC 程序中的主框架类指针是一个常用作法。就是获得应用程序主窗口的指针,AfxGetMainWnd()-m_hWnd 是主窗口的句柄。隐藏工具栏和菜单栏v

3、oid CMainFrame:HideMenuStatusToolBar(BOOL bflag)/跟 CStationSystemAppView 里面的OnInitialUpdate 函数联系起来一块用才能隐藏if(bflag)SetMenu(NULL);DrawMenuBar();ShowControlBar(&m_wndStatusBar,false,false);ShowControlBar(&m_wndToolBar,false,false);elseShowControlBar(&m_wndStatusBar,false,false);ShowControlBar(&m_wndToo

4、lBar,false,false);Public:CMainFrame*m_pMainFrame;在 C_VIEW 里的 OnInitialUpdate 里加上这两句m_pMainFrame=(CMainFrame*)AfxGetMainWnd();/这句也要加上m_pMainFrame-HideMenuStatusToolBar(true);/取消对话框中的菜单栏和状态栏SetMenuSetMenu 用法用法SetMenu-函数功能 函数功能:该函数分配一个到。函数原型:BOOL SetMenu(HWND hWnd,HMENU hMenu);参数:hWnd:菜单被分配到其中的窗口的句柄。HM

5、enu:新菜单的句柄。如果菜单参数为 NULL,则窗口的当前菜单被删除。SetMenu-返回值 返回值:如果函数调用成功,返回非零值;如果函数调用失败,是零。若想获得更多的错误信息,请调用 GetLaSError 函数。备注:窗口被重画来反映菜单的修改。函数 SetMenu 替换原来的菜单(如果存在),但并不将其销毁。应用程序必须调用函数 DestroyMenu 来销毁菜单。DrawMenuBar为指定的窗口重画菜单。用 api 函数改变一个窗口菜单的内容时,就要用到这个函数ShowControlBar()可以用来控制是否显示该工具栏Invalidate()函数的作用是使整个窗口客户区无效,窗

6、口客户无效即需要重绘,这时 Window 系统会发送一 WM_PAINT 消息放在应用程序的消息队列中,WM_PAINT 消息的优先级很低,所以不会立即重绘。如果需要立即重绘,那么就使用 UpdateWindow()函数,该函数可使WM_PAINT 被直接发送到目标窗口,从而导致窗口立即重绘。EnableWindow(false)表示禁用一个按钮,默认是 TRUEOnPaint 是 WM_PAINT 消息的消息处理函数,在 OnPaint 中调用 OnDraw,一般来说,用户自己的绘图代码应放在 OnDraw 中。OnPaint()是 CWnd 的类成员,负责响应 WM_PAINT 消息。On

7、Draw()是 CVIEW 的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows 发送 WM_PAINT 消息。该视图的 OnPaint 处理函数通过创建CPaintDC 类的 DC 对象来响应该消息并调用视图的 OnDraw 成员函数.OnPaint 最后也要调用 OnDraw,因此一般在 OnDraw 函数中进行绘制。ONERASEBKGND 实现双缓冲绘图,擦除背景的。CreateCompatibleDC该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过 GetDc()获取的 HDC直接与相关设备沟通,而本函数创建的 DC,则是

8、与内存中的一个表面相关联。BitBlt该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。函数原型函数原型BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);编辑本段编辑本段参数参数hdcDest:指向目标设备环境的句柄。nXDest:指定目标矩形区域左上角的 X 轴逻辑坐标。nYDest:指定目标矩形区域左上角的 Y 轴逻辑坐标。nWidth:指定源和目标矩形区域的逻辑宽度。nH

9、eight:指定源和目标矩形区域的逻辑高度。hdcSrc:指向源设备环境的句柄。nXSrc:指定源矩形区域左上角的 X 轴逻辑坐标。nYSrc:指定源矩形区域左上角的 Y 轴逻辑坐标。dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。下面列出了一些常见的光栅操作代码:BLACKNESS:表示使用与物理调色板的索引 0 相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。DSTINVERT:表示使目标矩形区域颜色取反。MERGECOPY:表示使用布尔型的 AND(与)操作符将源矩形区域的颜色与特定模式组合一起。

10、MERGEPAINT:通过使用布尔型的 OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。NOTSRCERASE:使用布尔类型的 OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。PATCOPY:将特定的模式拷贝到目标位图上。PATPAINT:通过使用布尔 OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用 OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。PATINVERT:通过使用 XOR(异或)操作符将源和目标矩形区域内的颜色合并。SRCAND:通过使用 AN

11、D(与)操作符来将源和目标矩形区域内的颜色合并。SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。SRCERASE:通过使用 AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。SRCINVERT:通过使用布尔型的 XOR(异或)操作符将源和目标矩形区域的颜色合并。SRCPAINT:通过使用布尔型的 OR(或)操作符将源和目标矩形区域的颜色合并。WHITENESS:使用与物理调色板中索引 1 有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。dwRop ValuesFrom wingdi.h:#define BLACKNESS 0 x42#define

12、 DSTINVERT 0 x550009#define MERGECOPY 0 xC000CA#define MERGEPAINT 0 xBB0226#define NOTSRCCOPY 0 x330008#define NOTSRCERASE 0 x1100A6#define PATCOPY 0 xF00021#define PATINVERT 0 x5A0049#define PATPAINT 0 xFB0A09#define SRCAND 0 x8800C6#define SRCCOPY 0 xCC0020#define SRCERASE 0 x440328#define SRCINVE

13、RT 0 x660046#define SRCPAINT 0 xEE0086#define WHITENESS 0 xFF0062加载 zhujiemian 那页图void CSubstationSystemView:OnPaint()CPaintDC dc(this);/device context for painting/TODO:Add your message handler code here/Do not call CFormView:OnPaint()for painting messagesCDC memdc;CRect rect;GetWindowRect(&rect);/

14、函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。CBitmap bitmap,*oldbitmap;bitmap.LoadBitmap(IDB_zhujiemian);memdc.CreateCompatibleDC(&dc);/该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过 GetDc()获取的 HDC 直接与相关设备沟通,而本函数创建的 DC,则是与内存中的一个表面相关联。oldbitmap=memdc.SelectObject(&bitmap);dc.BitBlt(0,0,rect.right,rect.bottom,&memdc

15、0,0,SRCCOPY);memdc.SelectObject(oldbitmap);ReleaseDC(&memdc);一定要加上这些/这样照片才能显示出来void CSubstationSystemView:DoDataExchange(CDataExchange*pDX)CFormView:DoDataExchange(pDX);/AFX_DATA_MAP(CSubstationSystemView)/NOTE:the ClassWizard will add DDX and DDV calls hereDDX_Control(pDX,IDC_BTN_SANWEI,m_sanwei);

16、DDX_Control(pDX,IDC_BTN_LIANXI,m_lianxi);DDX_Control(pDX,IDC_BTN_KAOSHI,m_kaoshi);DDX_Control(pDX,IDC_BTN_XUEXI,m_xuexi);DDX_Control(pDX,IDC_BTN_GUANLI,m_guanli);DDX_Control(pDX,IDC_BUTTON1,m_btn1);DDX_Control(pDX,IDC_BUTTON2,m_btn2);DDX_Control(pDX,IDC_BUTTON3,m_btn3);DDX_Control(pDX,IDC_BUTTON4,m_

17、btn4);DDX_Control(pDX,IDC_BUTTON5,m_btn5);DDX_Control(pDX,IDC_BUTTON6,m_btn6);DDX_Control(pDX,IDC_BUTTON7,m_btn7);DDX_Control(pDX,IDC_BUTTON8,m_btn8);DDX_Control(pDX,IDC_BUTTON9,m_btn9);DDX_Control(pDX,IDC_BUTTON10,m_btn10);DDX_Control(pDX,IDC_BUTTON11,m_btn11);DDX_Control(pDX,IDC_BUTTON12,m_btn12);

18、DDX_Control(pDX,IDC_BUTTON13,m_btn13);DDX_Control(pDX,IDC_BUTTON14,m_btn14);DDX_Control(pDX,IDC_BUTTON15,m_btn15);/一定要加上这些东西/AFX_DATA_MAP可以添加 CButton 类型的变量,如果是需要 CBitmapButton 或者 CImageButton 类型,则进行修改,在 dodatachange 中上述代码会自动添加上,所以说要在 Classward 中添加按钮的成员变量LoadBitmaps 的用法CBitmapButton:LoadBitmaps BOOL

19、LoadBitmaps(LPCTSTR lpszBitmapResource,LPCTSTR lpszBitmapResourceSel=NULL,LPCTSTR lpszBitmapResourceFocus=NULL,LPCTSTR lpszBitmapResourceDisabled=NULL);BOOL LoadBitmaps(UINT nIDBitmapResource,UINT nIDBitmapResourceSel=0,UINT nIDBitmapResourceFocus=0,UINT nIDBitmapResourceDisabled=0);Return ValueNonz

20、ero if successful;otherwise 0.EnableWindow指定是否要启用或禁用窗口。如果此参数为 true,则窗口已启用。如果该参数为 FALSE,则窗口被禁用。Invalidate指定更新区域内的背景是否是要被擦除。CSize 类 类 CSize 是对 Windows 结构 SIZE 的封装,凡是能用 SIZE 结构的地方都可以用 CSize 代替。结构 SIZE 表示一个矩形的长度和宽度,其定义为:typedef struct tagSIZE LONG cx;LONG cy;SIZE;其中 cx、cy 分别是宽度和高度。CScrollView:SetScrollS

21、izes这种方法称为视图进行更新时。若要调整滚动特性的 OnUpdate 方法的重写中调用它。例如此方法很有用,最初显示文档时,或当它更改大小。void SetScrollSizes(int nMapMode,SIZE sizeTotal,const SIZE&sizePage=sizeDefault,const SIZE&sizeLine=sizeDefault);该函数用于对滚动条进行设置。因为滚动条是附着在窗口之上的,而且它是用来对显示的文档进行操作的,因而我们应该在窗口和文档都创建完毕、窗口尚未显示之前对滚动条进行设置。因此可以在OnInitialUpdate(该函数调用 OnUpda

22、te)中或 OnUpdate 函数中调用 SetScrollSizes 完成对滚动条的设置。当我们想得到一个窗口对象(CWnd 的派生对象)指针的句柄(HWND)时,最安全的方法是使用 GetSafeHwnd()函数,CWnd:GetParentFrame呼叫此成員函式以取得父框架視窗。RecalcLayout 是 CFrameWnd 定义的虚拟函数,边框窗口在必要的时候调用虚拟函数 RecalcLayout 来重新放置它的控制条和客户窗口,例如在创建窗口时、响应消息 WM_SIZE 时调用 ResizeParentToFit 函数令视图大小控制其框架窗口的大小。如果在 App 的 InitI

23、nstance 中有:m_pMainWnd-ShowWindow(SW_SHOWMAXIMIZED);要现将这一句改为 m_pMainWnd-ShowWindow(SW_SHOW);否则,在 MainFrame 的 PreCreateWindow 里面设置 cs 的 cx 与 cy 不起作用要弄一个应用程序配置文件,首先新建一个 text 文档,然后更名为.config 格式的,然后你想显示的东西写在里面,CFile file(F:张悦祎SubstationSystemsystem.config,CFile:modeRead);int nlen=file.GetLength();char*bu

24、f;buf=new charnlen+1;memset(buf,0,nlen+1);file.Read(buf,nlen);file.Close();m_pMainWnd-SetWindowText(buf);这样之后你以后要修改的话,只需要去.config 那个文件中去修改就可以了Cstdiofile 类继承自 CFile 类参数内容:第一个参数为路径+文件名,最后一个为错误出现的结构.现在解释下第二个参数CFile:modeCreate Directs the constructor to create a new file.If the file exists already,it is

25、 truncated to 0 length.指定构造器创建一个新的文件,如果文件已经存在,则内容截 0.CFile:modeNoTruncate Combine this value with modeCreate.If the file being created already exists,it is not truncated to 0 length.Thus the file is guaranteed to open,either as a newly created file or as an existing file.This might be useful,for exa

26、mple,when opening a settings file that may or may not exist already.This option applies to CStdioFile as well.modeNoTruncate假如你不用这个参数的话,用 modeCreate 模式创建和打开一个文件,假如这个文件已经存在,则会清空这个已经存在的文件,加上 modeNoTruncate 的话,就不会清空这个文件了CFile:modeRead Opens the file for reading only.只是以读取方式打开CFile:modeReadWrite Opens t

27、he file for reading and writing.读与写同时CFile:modeWrite Opens the file for writing only.只写CFile:modeNoInherit Prevents the file from being inherited by child processes.阻止这个文件被子进程继承CFile:shareDenyNone Opens the file without denying other processes read or write access to the file.Create fails if the fil

28、e has been opened in compatibility mode by any other process.打开这个文件同时允许其它进程读写这个文件。如果文件被其它进程以 incompatibility 模式打开,这是 create 操作会失败。CFile:shareDenyRead Opens the file and denies other processes read access to the file.Create fails if the file has been opened in compatibility mode or for read access by

29、 any other process.打开文件拒绝其它任何进程读这个文件。如果文件被其它进程用 compatibility 模式或者是读方式打开,create 操作失败。CFile:shareDenyWrite Opens the file and denies other processes write access to the file.Create fails if the file has been opened in compatibility mode or for write access by any other process.打开文件拒绝其它任何进程写这个文件。如果文件被

30、其它进程用 compatibility 模式或者是写方式打开,create 操作失败。CFile:shareExclusive Opens the file with exclusive mode,denying other processes both read and write access to the file.Construction fails if the file has been opened in any other mode for read or write access,even by the current process.以独占方式打开这个文件,不允许其它进程读

31、写这个文件。CFile:shareCompat This flag is not available in 32 bit MFC.This flag maps to CFile:shareExclusive when used in CFile:Open.这个标志在 32 位的 MFC 中无效。CFile:typeText Sets text mode with special processing for carriage returnlinefeed pairs(used in derived classes only).CFile:typeText 设置成对回车换行对有特殊处理的文本模式

32、仅用在派生类中)CFile:typeBinary 设置二进制模式(仅用在派生类中)CStdioFile 继承自 CFile,一个 CStdioFile 对象代表一个用运行时函数 fopen 打开的 C 运行时流文件。流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车换行符对的特殊处理。当你将一个换行符(0 x0A)写入一个文本方式的 CStdioFile 对象时,字节对(0 x0D,0 x0A)被发送给该文件。当你读一个文件时,字节对(0 x0D,0 x0A)被翻译为一个字节(0 x0A)。CStdioFile 不支持 Duplicate,LockRange

33、和 UnlockRange 这几个CFile 函数。如果在 CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。CStdioFile:ReadString(LPTSTR lpsz,UINT nMax);读取一行文本到缓冲区,遇到“0 x0D,0 x0A”时停止读取,并且去掉硬回车“0 x0D”,保留换行符“0 x0A”,在字符串末尾添加“/0”(0 x00)。nMax 个字符里包含0 x00 这个字符。分析如下:1)如果 nMax 字符数,读取 nMax 个字符+0 x0A+0 x00 CStdioFile:ReadString(CString&rString)

34、重载)读取一行文本到 rString,遇到回车换行符停止读取。回车和换行符不读到rString,而且末尾也没有添加“/0”。CStdioFile:WriteString(LPCTSTR lpsz);(不支持 CString 直接写入)将一个缓冲区中的数据写入与 CStdioFile 对象关联的文件中。结束的空字符(“/0”)不被写入该文件。lpsz 中的所有换行符都被以一个硬回车换行符对写入该文件,即“/n”被转化成“/r/n”写入到文件里。CFile 的派生类 CStdioFile 提供了对文件进行流式的操作功能。其中函数void CStdioFile:WriteString(LPCTS

35、TR lpsz)写入一个字符串,需要给字符串lpsz 的末尾加上换行标志”/r/n”;函数 bool CStdioFile:ReadString(CString&rString)从文件中读取一行,如果文件未读完返回 true,否则返回 false。当 CStdioFile.WriteString 无法处理中文时,把工程的字符集属性 改成 使用多字节字符集 就可以了,具体设置方法如:打开项目属性-配置属性-常规-字符集-改成 使用多字节字符集 要注意的是 CStdioFile 在_MSBC 环境下读取任何 ANSI 文本数据都没问题,在 UNICODE 环境下读取 ANSI 文本中的中文时就会显

36、示乱码。其原因是由于CStdioFile 读取 ANSI 文本数据时按 char 类型读取,在_MSBC 下可以直接填充到 CString,在 UNICODE 环境下要先将 char 转换成宽字符 WCHAR,然后再填充到 CString,即一个汉字的两个 char 将变成两个 UNICODE 字符WCHAR。那么问题如何解决呢?实际上在 UNICODE 环境下,file.ReadString(strLine)取得的数据是 char 类型,但是存储在 UNICODE 字符串中。为了取得真实数据,必须对 strLine 进行处理。在 CFile 类中提供了 2 种模式,typeBinary 和

37、typeText。如果是 CTextFile 类的话当然要强制使用 typeText 类型了。那么 CStdioFile 是怎么做的呢?BOOL CStdioFile:Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException*pException)/调用基类打开文件,注意通过 nOpenFlags&typeText 过滤了文件的文本属性 if(!CFile:Open(lpszFileName,(nOpenFlags&typeText),pException)return FALSE;/转换找开模式if(nOpenFlags&typeBin

38、ary)szModenMode+=b,nFlags=_O_TEXT;else szModenMode+=t;/open a C-runtime low-level file handle int nHandle=_open_osfhandle(UINT_PTR)m_hFile,nFlags);/open a C-runtime stream from that handle if(nHandle!=-1)m_pStream=_fdopen(nHandle,szMode);由上面的代码可以看出,CStdioFile 强制过滤了 typeText 标志,使得文件打开模式可以是二进制模式。这已经可以

39、证明 CStdioFile 不是一个纯粹TextFile 类。再仔细看上面的代码,在调用基类打开后,又使用_open_osfhandle 和_fdopen 做了奇怪的转换,察看 m_pStream 的类型 FILE*m_pStream;/stdio FILE 这是一个标准 I/O 的 FILE 结构。如果再进一步的研究 CStdioFile 的源码,还会发现它都是调用标准 I/O 的函数来操作的,比如用_fputts/_fgetts 来实现WriteString/ReadString,用 fread/fwrite/fseek 来替代 Read/Write/Seek。注意CStdioFile 并

40、没有使用 CFile 的 Read/Write/Seek 函数,如果在 Open 里将使用 fopen 直接打开的话,CStdioFile 甚至可以说和 CFile 没有任何的关系。,由此这个类叫做 CStdioFile 就不奇怪了。为什么要研究这个问题呢?前一段在 上看到不少人问为什么UNICODE 的文本文件处理出现乱码?他们很惊异发现平常作为 TextFile 的处理类用得 CStdioFile 竟然失效了。真的是它失效了吗?其实是标准的 I/O 操作并不支持 UNICODE 的模式而已。CArchive百科名片百科名片CArchive 对象提供了一个类型安全缓冲机制,用于将可序列化对象

41、写入 CFile 对象或从中读取可序列化对象。通常,CFile 对象表示磁盘文件;但是,它也可以是表示“剪贴板”的内存文件(CSharedFile 对象)。不要用死路径,用:GetCurrentDirectory 获取当前程序所在的目录,找到那个文件读取对类似于记事本的文件进行逐行读取时,用 CStdioFilechar buf256;:GetCurrentDirectory(255,buf);CString str_path;str_path.Format(%s,buf);str_path+=;/str_path+=system_3D.cfg;str_path+=system.config;

42、CStdioFile file;CString temp;CString zhanming;if(file.Open(str_path,CFile:modeRead)int i=1;while(file.ReadString(temp)int index=temp.Find(,0);int len=temp.GetLength();if(i=0)zhanming=temp.Mid(index+1,len);if(i=1)zhanming=temp.Mid(index+1,len);if(i=2)zhanming=temp.Mid(index+1,len);i-;m_pMainWnd-SetWi

43、ndowText(zhanming);要把窗口显示完整,这句话是必不可少的:SetWindowPos(m_pMainWnd-m_hWnd,HWND_TOP,0,0,1024,750,SWP_SHOWWINDOW);MFC 中点击按钮弹出对话框1.在资源视图中找到 dialog,新建 dialog,命名为 DLG(名字随意),这个 dialog 就是你要点击后出来的对话框,楼主自己对这个对话框进行设计。2.找到你要点击的按钮,双击,在显示的函数中添加一下代码:DLG dlg;dlg.DoModal();3.在当前的文件中的最前面添加#includeDLG.h4.运行程序。CListCtrl 的用

44、法CListCtrl 类封装了“列表视图控件”功能,显示每个包含图标(列表视图中)和标签的收集。除图标和标签外,每一项还能有显示在图标和标签右边列中的信息。此控件(以及 CListCtrl 类)只适用于运行于 Windows 95 和 Windows NT 3.51 及更高版本的程序。视图视图列表视图控件可用四种不同方式显示其内容,称之为“视图”。图标视图图标视图:每一项以全尺寸图标(3232 像素)出现,下面有一个标签。用户可在列表视图窗口拖动项到任意位置。小图标小图标:视图每一项以小图标(1616 像素)出现,右边有一个标签。用户可在列表视图窗口拖动项到任意位置。列表视图列表视图:每一项以

45、小图标出现,下面有一个标签。项按列排列,不能拖动到列表视图窗口的任何位置。报表视图报表视图:每一项在本行上出现,右边有排列成列的附加信息。最左边的列包含小图标和标签,下一列包含应用指定的子项。嵌入标题控件实现这些列。要了解报表视图标题控件和列的更多信息,请参阅联机文档“Visual C+程序员指南”中的“使用 CListCtrl:给控件添加列(报表视图)”。控件的当前列表视图风格指定当前视图。要了解这些风格及其用法的更多信息,请参阅联机文档“Visual C+程序员指南”中的“使用 CListCtrl:改变列表控件风格”。扩展风格扩展风格逗留选择逗留选择:有效时,若光标保持在某项上一段时间,则

46、允许自动选择该项。虚列表视图虚列表视图:如果有效,允许控件支持 DWORD 项。通过把管理应用项数据放在最顶上而成为可能。除了项选择和焦点信息,所有项信息必须由应用管理。要了解更多信息,请参阅联机文档“Visual C+程序员指南”中的“使用 CListCtrl:虚列表控件”。单击或双击激活单击或双击激活:如果有效,允许热跟踪(项文本自动高亮显示)和高亮显示项的单击和双击激活。拖放列表命令拖放列表命令:如果有效,允许拖放列表视图控件中列的记录。只对报表视图有效。要了解使用新扩展风格的更多信息,请参阅联机文档“Visual C+程序员指南”中的“使用CListCtrl:改变列表控件风格”。项和子

47、项项和子项列表视图控件中的每一项含有一个图标、一个标签、一个当前状态和应用定义值(称为“项数据”)。一个或更多子项还可与每一项联系。一个“子项”是一个字符串,在报表视图中可显示在项图标和标签右边的列里。列表视图控件中的每一项都必须与子项数目相同。类 CListCtrl 提供一些函数来插入、删除、查找和更改这些项。要了解更多信息,请参阅“Visual C+程序员指南”中的“使用 CListCtrl:列表控件中的滚动、排列、排序和查找”。同时请参阅 CListCtrl:GetItem,CListCtrl:InsertItem 和 CListCtrl:FindItem。缺省时,列表视图控件负责存储一

48、个项的图标和文本属性。然而,除了这些项类型外,类CListCtrl 支持“回调项”。一个“回调项”是一个列表视图项,每个应用枣而不是控件枣存储文本,图标或两者。回调掩码用于指定哪个项的属性(文本和/或图标)由应用提供。如果应用使用回调项,它必须可以提供按需要提供文本和/或图标属性。回调项在你的应用已有部分这种信息时很有帮助。要了解更多信息,请参阅 CListCtrl:GetCallBackMask 和“使用CListCtrl:回调项和回调掩码”。图象列表图象列表图标、标题项图象和应用定义的列表视图项状态包含在一些图象列表中(由类 CImageList实现),可创建和指派到列表视图控件中。每个列

49、表视图控件可有四个以上的图象列表类型:大图标大图标:在图标视图中使用,得到全尺寸图标。小图标小图标:用于小图标、列表和报表视图中,得到图标视图中使用的小版本的图标。应用定义的状态应用定义的状态:包含状态图象,在项图标旁显示以指示一个应用定义状态。标题项标题项:用于在报表视图中,得到出现在每个标题控件项中的小图象。缺省时,列表视图控件删除指派给它的图象列表(当它删除时);然而,开发者可通过删除由应用定义的不再使用的图象列表。#include 请参阅:CImageList构造函数构造函数CListCtrl 类的成员构造函数构造函数ClistCtrl 构造一个 CListCtrl 对象。Create

50、 创建列表控件并将其附加给 CListCtrl 对象。属性属性GetBkColor 获取列表视图控件的背景色。SetBkColor 设置列表视图控件的背景色。GetImageList 获取用于绘制列表视图项的图象列表的句柄。SetImageList 指定一个图象列表到列表视图控件。GetItemCount 获取列表视图控件中的项的数量。GetItem 获取列表视图项的属性。GetCallbackMask 获取列表视图控件的回调掩码。SetCallbackMask 设置列表视图控件的回调掩码。GetNextItem 查找指定特性和指定指定项关系的列表视图项。GetFirstSeletedItem

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服