我是一个菜鸟,请教一下动态实现对话框! 请问怎么样才能动态实现从硬盘上读取文件,并显示在对编辑框中,以便修改. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么意思!!!显示在对编辑框中??????????动态生成一个对话框的例子到有!!!创建中必须使用UNICODE字符!!!MSDN中的!!!!!! /* Helper routine. Take an input pointer, return closest pointer that is aligned on a DWORD (4 byte) boundary. */ LPWORD lpwAlign ( LPWORD lpIn) { ULONG ul; ul = (ULONG) lpIn; ul +=3; ul >>=2; ul <<=2; return (LPWORD) ul; } #define ID_HELP 150 #define ID_TEXT 200 LRESULT DisplayMyMessage(HINSTANCE hinst, HWND hwndOwner, LPSTR lpszMessage) { HGLOBAL hgbl; LPDLGTEMPLATE lpdt; LPDLGITEMTEMPLATE lpdit; LPWORD lpw; LPWSTR lpwsz; LRESULT ret; hgbl = GlobalAlloc(GMEM_ZEROINIT, 1024); if (!hgbl) return -1; lpdt = (LPDLGTEMPLATE)GlobalLock(hgbl); // Define a dialog box. lpdt->style = WS_POPUP | WS_BORDER | WS_SYSMENU | DS_MODALFRAME | WS_CAPTION; lpdt->cdit = 3; // number of controls // lpdt->cdit = 1; // COMMENTED OUT -- unnecessary code lpdt->x = 10; lpdt->y = 10; lpdt->cx = 100; lpdt->cy = 100; lpw = (LPWORD) (lpdt + 1); *lpw++ = 0; // no menu *lpw++ = 0; // predefined dialog box class (by default) lpwsz = (LPWSTR) lpw; lstrcpyW(lpwsz, L"My Message"); // dialog title (Unicode) lpw = (LPWORD) (lpwsz + lstrlenW(lpwsz) + 1); //----------------------- // Define an OK button. //----------------------- lpw = lpwAlign (lpw); lpdit = (LPDLGITEMTEMPLATE) lpw; lpdit->x = 10; lpdit->y = 70; lpdit->cx = 80; lpdit->cy = 20; lpdit->id = IDOK; // OK button identifier lpdit->style = WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON; lpw = (LPWORD) (lpdit + 1); *lpw++ = 0xFFFF; *lpw++ = 0x0080; // button class lpwsz = (LPWSTR) lpw; lstrcpyW(lpwsz, L"OK"); // button label (Unicode) lpw = (LPWORD) (lpwsz + lstrlenW(lpwsz) + 1); *lpw++ = 0; // no creation data //----------------------- // Define a Help button. //----------------------- lpw = lpwAlign (lpw); lpdit = (LPDLGITEMTEMPLATE) lpw; lpdit->x = 55; lpdit->y = 10; lpdit->cx = 40; lpdit->cy = 20; lpdit->id = ID_HELP; // Help button identifier lpdit->style = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON; lpw = (LPWORD) (lpdit + 1); *lpw++ = 0xFFFF; *lpw++ = 0x0080; // button class atom lpwsz = (LPWSTR) lpw; lstrcpyW(lpwsz, L"Help"); // button label (Unicode) lpw = (LPWORD) (lpwsz + lstrlenW(lpwsz) + 1); *lpw++ = 0; // no creation data //----------------------- // Define a static text control. //----------------------- lpw = lpwAlign (lpw); lpdit = (LPDLGITEMTEMPLATE) lpw; lpdit->x = 10; lpdit->y = 10; // Changed this from (55,10) lpdit->cx = 40; lpdit->cy = 20; lpdit->id = ID_TEXT; // text identifier lpdit->style = WS_CHILD | WS_VISIBLE | SS_LEFT; lpw = (LPWORD) (lpdit + 1); *lpw++ = 0xFFFF; *lpw++ = 0x0082; // static class for (lpwsz = (LPWSTR)lpw; *lpwsz++ = (WCHAR) *lpszMessage++; ); lpw = (LPWORD)lpwsz; *lpw++ = 0; // no creation data GlobalUnlock(hgbl); ret = DialogBoxIndirect(hinst, (LPDLGTEMPLATE) hgbl, hwndOwner, (DLGPROC) DialogProc); GlobalFree(hgbl); return ret; } 以上例子是显示一个有HELP和OK按钮和 一个标签控件的对话框!!!!!!标签字符是参数!!!!!!!!!!!!! TCP IOCP服务器收包被下一个包覆盖? 向高手请教一些问题 在线 请问怎么样禁用一个CMenu的Item 国际反GNU运动给国内厂商带来莫大契机 着急。。。。。。。。。。 关于GetAsyncKeyState返回值的问题 关于PSpice的问题,一百分大赠送!!! 很急!!! 如何动态显示/隐藏属性页或者tapctrl中的控件? 如何多人开发vc++程序? 求电子书一本! 如何用ADO连接有密码的ACCESS数据库,请给出连接字符串 vc编程过程中堆栈的地址和成员变量的地址冲突是怎么回事,我的程序调试不通
动态生成一个对话框的例子到有!!!创建中必须使用UNICODE字符!!!
MSDN中的!!!!!!
/*
Helper routine. Take an input pointer, return closest
pointer that is aligned on a DWORD (4 byte) boundary.
*/
LPWORD lpwAlign ( LPWORD lpIn)
{
ULONG ul; ul = (ULONG) lpIn;
ul +=3;
ul >>=2;
ul <<=2;
return (LPWORD) ul;
}
#define ID_HELP 150
#define ID_TEXT 200
LRESULT DisplayMyMessage(HINSTANCE hinst, HWND hwndOwner,
LPSTR lpszMessage)
{ HGLOBAL hgbl;
LPDLGTEMPLATE lpdt;
LPDLGITEMTEMPLATE lpdit;
LPWORD lpw;
LPWSTR lpwsz;
LRESULT ret; hgbl = GlobalAlloc(GMEM_ZEROINIT, 1024);
if (!hgbl)
return -1; lpdt = (LPDLGTEMPLATE)GlobalLock(hgbl); // Define a dialog box. lpdt->style = WS_POPUP | WS_BORDER | WS_SYSMENU
| DS_MODALFRAME | WS_CAPTION;
lpdt->cdit = 3; // number of controls
// lpdt->cdit = 1; // COMMENTED OUT -- unnecessary code lpdt->x = 10; lpdt->y = 10;
lpdt->cx = 100; lpdt->cy = 100; lpw = (LPWORD) (lpdt + 1);
*lpw++ = 0; // no menu
*lpw++ = 0; // predefined dialog box class (by default) lpwsz = (LPWSTR) lpw;
lstrcpyW(lpwsz, L"My Message"); // dialog title (Unicode)
lpw = (LPWORD) (lpwsz + lstrlenW(lpwsz) + 1); //-----------------------
// Define an OK button.
//-----------------------
lpw = lpwAlign (lpw);
lpdit = (LPDLGITEMTEMPLATE) lpw;
lpdit->x = 10; lpdit->y = 70;
lpdit->cx = 80; lpdit->cy = 20;
lpdit->id = IDOK; // OK button identifier
lpdit->style = WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON; lpw = (LPWORD) (lpdit + 1);
*lpw++ = 0xFFFF;
*lpw++ = 0x0080; // button class lpwsz = (LPWSTR) lpw;
lstrcpyW(lpwsz, L"OK"); // button label (Unicode)
lpw = (LPWORD) (lpwsz + lstrlenW(lpwsz) + 1);
*lpw++ = 0; // no creation data //-----------------------
// Define a Help button.
//-----------------------
lpw = lpwAlign (lpw); lpdit = (LPDLGITEMTEMPLATE) lpw;
lpdit->x = 55; lpdit->y = 10;
lpdit->cx = 40; lpdit->cy = 20;
lpdit->id = ID_HELP; // Help button identifier
lpdit->style = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON; lpw = (LPWORD) (lpdit + 1);
*lpw++ = 0xFFFF;
*lpw++ = 0x0080; // button class atom
lpwsz = (LPWSTR) lpw;
lstrcpyW(lpwsz, L"Help"); // button label (Unicode)
lpw = (LPWORD) (lpwsz + lstrlenW(lpwsz) + 1);
*lpw++ = 0; // no creation data //-----------------------
// Define a static text control.
//-----------------------
lpw = lpwAlign (lpw); lpdit = (LPDLGITEMTEMPLATE) lpw;
lpdit->x = 10; lpdit->y = 10; // Changed this from (55,10)
lpdit->cx = 40; lpdit->cy = 20;
lpdit->id = ID_TEXT; // text identifier
lpdit->style = WS_CHILD | WS_VISIBLE | SS_LEFT; lpw = (LPWORD) (lpdit + 1);
*lpw++ = 0xFFFF;
*lpw++ = 0x0082; // static class for (lpwsz = (LPWSTR)lpw;
*lpwsz++ = (WCHAR) *lpszMessage++;
);
lpw = (LPWORD)lpwsz;
*lpw++ = 0; // no creation data GlobalUnlock(hgbl);
ret = DialogBoxIndirect(hinst,
(LPDLGTEMPLATE) hgbl,
hwndOwner, (DLGPROC) DialogProc);
GlobalFree(hgbl); return ret;
}
标签字符是参数!!!!!!!!!!!!!