MFC相关(二)

来源:互联网 发布:json.stringify 编辑:程序博客网 时间:2024/05/17 22:37

18.C++使用**操作符指派一个指针指向另一个指针。

Eg:

    int ival = 1024;

    int *pi = &ival;

    int **ppi = π

    int pi2 = *ppi;

    要获取ival需使用:int I = **ppi;

   

19.如果数组ia只有4个元素,那么指向ia的指针加10是错误的;

 

20.C++允许计算数组或对象的超出末端的地址,但不允许对此地址进行解引用操作。而计算数组超出末端位置之后或数组首地址之前的地址都是不合法的。

 

21.不可用void*指针保存const对象的地址。而必须使用const void*类型指针保存const对象的地址;

 

22.把一个const对象的地址赋给一个普通的非const对象的指针也会导致编译时的错误。

 

 

MFC相关

 

23.CString:用来表示可变长度的字符串。使用CString可不指明内存大小,CString会根据需要自行分配。

 

(sjdi*)jdaiofj是什么意思

 

 

24.UINT无符号整型(unsigned int

 

25.在某些不需要很大的图片并且需要使用非规则的图形的时候,使用图标会比较合适,而且也比较简单。

 

26. LPCTSTR字符串型(老式遗留产物)

 

27.使用int GetClipRgn( HDC hdc, HRGN hrgn)

int CDC:GetClipBox(LPRECT lprect)  来获取已经失效的区域

    HRGN 区域句柄

LPRECT接收矩形尺寸信息的RECT结构或CRect对象的指针

 

28.一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。(VC6中支持创建不带文档-视的应用)

 

29. 程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实例,并将两者关联。

 

30. 接下来看看如何在程序中得到各种对象的指针:

  • 全局函数AfxGetApp可以得到CWinApp应用类指针
  • AfxGetApp()->m_pMainWnd为框架窗口指针
  • 在框架窗口中:CFrameWnd::GetActiveDocument得到当前活动文档指针
  • 在框架窗口中:CFrameWnd::GetActiveView得到当前活动视指针
  • 在视中:CView::GetDocument得到对应的文档指针
  • 在文档中:CDocument::GetFirstViewPositionCDocument::GetNextView用来遍历所有和文档关联的视。
  • 在文档中:CDocument::GetDocTemplate得到文档模板指针
  • 在多文档界面中:CMDIFrameWnd::MDIGetActive得到当前活动的MDI子窗口

一般来讲用户输入消息(如菜单选择,鼠标,键盘等)会先发往视,如果视未处理则会发往框架窗口。所以定义消息映射时定义在视中就可以了,如果一个应用同时拥有多个视而当前活动视没有对消息进行处理则消息会发往框架窗口。

 

31. 视图中是没有菜单的,在框架窗口中才有,所以只有用AfxGetApp()->m_pMainWnd->GetMenu()才能得到应用的菜单指针。

 

32.当使用者通过视进行了修改时,应该调用GetDocument->SetModifiedFlag(true);通知文档数据已经被更新,这样在关闭文档的时候会自动询问用户是否保存数据。

 

33.检查按钮和圆形按钮可能出现第三种状态:“未定”,可以通过GetCheck来判断是否选中,通过SetCheck来设置选中状态。

 

Ps:处理按钮消息需要在父窗口中进行消息映射

 

34.静态文本控件可以作为现实字符串,图标,位图用。

 

35.void Clear()删除选中的文本

 

36. 如果需要在滚动条位置被改变时得到通知,需要在父窗口中定义对消息WM_VSCROLL/WM_HSCROLL的映射

原创粉丝点击