WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院软件开发VC 对话框模板 RegexTest 阅读

对话框模板 RegexTest

 2006-07-19 11:31:19 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姇閹碱偆鐥閺屾洘绻濊箛鏇犵獥闂佺厧澹婃禍婊堚€旈崘顏佸亾閿濆骸澧ù鐘欏嫮绠鹃柛顐ゅ枎閻忋儲銇勯弴妯哄姦妞ゃ垺鐟╅幃鈩冩償閵囧府鎷�
核心提示: *pTempl++ = 0; // 菜单 (无)*pTempl++ = 0; // 对话框类 (使用标准的对话框类)接下来是标题,一个空结尾的 Unicode 字符串:USES_CONVERSION;LPCWSTR wszText = T2W(_T("My Dialog"
*pTempl++ = 0; // 菜单 (无)
*pTempl++ = 0; // 对话框类 (使用标准的对话框类)

接下来是标题,一个空结尾的 Unicode 字符串:

USES_CONVERSION;
LPCWSTR wszText = T2W(_T("My Dialog"));
wcscpy((WCHAR*)pTempl, wszText);
pTempl += wcslen(wszText)+1;

这段代码支持 Unicode 或者 ASCII,因为定义了 _UNICODE,T2W是一个串转换宏。不要忘了增加模板指针 pTempl 的增量值,将其指到串后面的下一个 WORD。如果对话框具有 DS_SETFON 式样,在第四个字段:16位的字体大小后跟 Unicode 字体名,例如:“Verdana”。

最后,我要指出对话框模板有一个扩展版本 DLGTEMPLATEEX,它可以让你指定更多的域,如字体点数和重量、是否用斜体、字符集、字体名。想了解更多信息请参考文档。这里我仅描述一个简单版本,因为通过在 OnInitDialog 处理例程中调用 SetFont 来设置字体是很容易的事情。(对于对话框中的控件项也有一个 DLGITEMTEMPLATEEX 扩展版本)。

讲了这么多 DLGTEMPLATE。下面该看看控件。对话框中的每个控件项都是通过一个模板来描述的(DLGITEMTEMPLATE),其值不能超过一个 DWORD:

pTempl = AlignDWORD(pTempl);
DLGITEMTEMPLATE& it = *((DLGITEMTEMPLATE*)pTempl);
it.x = 0;
it.y = 0;
// etc.

与 DLGTEMPLATE 类似,DLGITEMTEMPLATE 结构后面有三个变长域。即类名,文本和“”创建数据(creation data)。类名也是空结尾的 Unicode 字符串指定窗口类名(例如,“SysListView32”或者“MyFancyControl”),或者 0xFFFF 后跟特定的原子码之一,这些编码如 Figure 4 所示,它们都用于标准的预定义系统控件。例如,下面的代码示范了如何创建一个静态的文本控件:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:对话框 模板 RegexTest

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接