2011年4月27日 星期三

HICON; LOADICON

LoadIcon使用方法

HICON   hIcon   =   AfxGetApp()-> LoadIcon(nIconID);
HICON   hIcon   =   LoadIcon(AfxGetApp()-> m_hInstance,   MAKEINTRESOURCE(nIconID)); 

2011年4月15日 星期五

Modeless dialog

如果不想使用DoModal來呼叫建立dialog,可以使用modeless的dialog。
1.呼叫dialog的create,並傳入ID。
ex: CDialog dlg;
dlg.create(IDD_EXAMPLE);

2.在結束時呼叫DestroyWindow(),而不是EndDialog()

ref :http://msdn.microsoft.com/en-us/library/zhk0y9cw%28v=vs.80%29.aspx

2011年4月14日 星期四

Add a new View in MFC MDI

首先加入一個繼承CView的MFC Class : CFlyAwayView;

1. @ Winapp.cpp InitInstance()

    CMultiDocTemplate* pFlyAwayView;
    pFlyAwayView = new CMultiDocTemplate(
        IDR_EXTYPE,
        RUNTIME_CLASS(CDoc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CFlyAwayView));
    AddDocTemplate(pFlyAwayView);

pFlyAwayView->OpenDocumentFile(NULL);
//沒有這行View就沒有Active


2. @ MainFrame.cpp
在mainframe中調換view

OnMessageFunction():

CView* pView;
   
    while (pView = MDIGetActive()->GetActiveView())
    {
        if (pView->IsKindOf( RUNTIME_CLASS(CFlyAwayView)))
        {       
         
            AfxMessageBox(_T("hi"));
            break;
        }

            MDINext();
            MDIMaximize(pView);
    }