MFCのいくつかの常用関数:OneCreateとOnInitial UpDate、GetActive FrameとMDIGetActive、Invalidate、Set ModifieFlage、UpdateAll

2528 ワード

使っているものを全部整理してください.でないと、乱れやすいです.
一、OneCreateとOneitial UpDate
参考:http://www.cnblogs.com/mingfei200169/articles/666567.html
ONCREATEは、VIEWの基本構造と変数のみを生成し、OnInitial UpDate()では、ビュー内のコントロールなどを主に初期化し、各変数を初期化します.
例を示す.ビューにbuttonとcompboxコントロールを追加します.
OnCreate       :
int CFormView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
 if (CView::OnCreate(lpCreateStruct) == -1)
  return -1;
 
 // TODO: Add your specialized creation code here
 CRect rect(20,20,100,50);
 m_ctrlButton.Create("Button1",WS_CHILD|WS_VISIBLE,rect,this,NULL);

 //      
 CFont *pFont=CFont::FromHandle((HFONT)::GetStockObject(ANSI_VAR_FONT));
 CRect rect1(150,20,350,100);
 m_combobox.Create(WS_CHILD|WS_VISIBLE|CBS_SIMPLE|CBS_NOINTEGRALHEIGHT|WS_VSCROLL,rect1,this,NULL);

 return 0;
}
OnInitialUpDate   
void CFormView::OnInitialUpdate() 
{
 CView::OnInitialUpdate();
 
 // TODO: Add your specialized code here and/or call the base class
 //        
 m_combobox.AddString("Mondy");
 m_combobox.AddString("Tuesday");
 m_combobox.AddString("Wednesday");
 m_combobox.AddString("Thursday");
 m_combobox.AddString("Saturday");
 m_combobox.AddString("Sunday");

}
ここはとても重要です.
OnCreate()は構造を生成するものであり、
OnInitial UpDateは構造を初期化する.二つの一つはハードウェアに相当し、一つはソフトウェアに相当し、機能と役割は全く異なる.しかし互いに密接な関係です.
二、GetActive FrameとMDIGetActive
参考:http://blog.csdn.net/zhuxiufenghust/article/details/7039879
The CMDIFrameWnd class provides the functionality of a Windows multiple document interface (MDI) frame window, along with members for managing the window. 
CMDIFrame Wnd機能のクラスは、会員管理ウィンドウと一緒にWindowsマルチドキュメントインターフェース(MDI)フレームウィンドウを提供します.
The CMDIChildWnd class provides the functionality of a Windows multiple document interface (MDI) child window, along with members for managing the window.
CMDIChildWnd機能のクラスは、会員管理ウィンドウと一緒にWindowsマルチドキュメントインターフェース(MDI)サブウィンドウを提供します.
注意しました
一つは、複数のドキュメントインターフェースを提供するフレームウィンドウであり、一つは複数のドキュメントインターフェースのサブウィンドウである.
.
三、Invalidate、Set Modified Flagge、UpdateAllView
参考:http://zhidao.baidu.com/question/50593960.html
1:Invalidate
この関数の役割は、ウィンドウ全体のクライアントエリアを無効にし、無効なウィンドウを表示または処理するためには、ウィンドウのクライアントエリアが無効になります.したがって,この機構は人間と同じで,必要なものだけを処理して有用である.
2:SetModifieldFlags
汚点を設定して、内容が既に修正されているかどうか(汚染されているかどうか)を示して、保存するかどうかを判断する時によく役立ちます.
3:UpdateAllView
Docクラスの内容を更新すると、これを使って更新内容を可視化するのが一般的です.