ENG> How can I pass a value through CREATESTRUCT in MDI applications?
How can I pass a parameter to CREATESTRUCT in VC++ MDI application.
For example, Dialogue based examples can pass a value to CREATESTRUCT,
such as following example.
EX>
char* str = "hi";
DialogBoxParam(m_hInstance, MAKEINTRESOURCE(IDD_DLG), m_hWnd,
(DLGPROC)DlgProc, (LPARAM) &str);
ÇÑÈÄ¿¡ DlgProc()¿¡¼*
SetWindowLong(hDlg,GWL_USERDATA,(LONG)lParam);
char* str = GetWindowLong(hDlg,GWL_USERDATA);
We can access the "str" variable by using GetWindowLong Method.
But I cannot pass a value in occation of MDI application.
In MDI application, We regist DocTemplate like this
AddDocTemplate(new CMultiDocTemplate(
IDR_STARCW1664TYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMyFrame),
RUNTIME_CLASS(CMyView)));
And We Open those document templates by follwing method.
CMyDoc* pMyDoc = (CMyDoc*)pTemplate->OpenDocumentFile(NULL);
But I cannot use cs in PreCreateWindow(cs), i.e.
CMyFrame::PreCreateWindow(CREATESTRUCT& cs)
How can I pass a value to cs in MDI applications
KOR> MDI¿¡¼* CREATESTRUCT¿¡ ÆĶó¹ÌÅ͸¦ ³Ñ±â·Á¸é ¾î¶»°Ô Çϳª¿ä?
MDI¿¡¼* CREATESTRUCT¿¡ º¯¼ö¸¦ ³Ñ±æ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¹º°¡¿ä?
¿¹¸¦µé¾î ´ëÈ*»óÀÚÀÇ °æ¿ì
char* str = "hi";
DialogBoxParam(m_hInstance, MAKEINTRESOURCE(IDD_DLG), m_hWnd,
(DLGPROC)DlgProc, (LPARAM) &str);
ÇÑÈÄ¿¡ DlgProc()¿¡¼*
SetWindowLong(hDlg,GWL_USERDATA,(LONG)lParam);
char* str = GetWindowLong(hDlg,GWL_USERDATA);
Çϸé strÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸, MDIÀÇ °æ¿ì¿¡´Â ¾î¶»°Ô ³Ñ°ÜÁÖ¾î¾ß ÇÏ´ÂÁö¿ä.
Áï
AddDocTemplate(new CMultiDocTemplate(
IDR_STARCW1664TYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMyFrame),
RUNTIME_CLASS(CMyView)));
CMyDoc* pMyDoc = (CMyDoc*)pTemplate->OpenDocumentFile(NULL);
¿Í °°ÀÌ Çϸé CMyFrame::PreCreateWindow(CREATESTRUCT& cs)ÀÇ cs
¿¡´Â ¾î¶²°ªµµ Àü´Þ¹ÞÀ» ¼ö ¾ø½À´Ï´Ù. ¹æ¹ýÀÌ ÀÖ³ª¿ä?