VCL是高手的杰作,想当初MFC就是抄VCL的。可惜盖茨实在厉害,把Borland的高手挖走了。因此目前Delphi也就是混个不生不死。
可是习惯了说一种语言就懒得换了。昨天遇到一个问题。就是在打开加密的rar文件的时候需要问密码。因为即时做书程序是一个线程,而VCL is not thread-safe,所以在显示对话框的时候,就不能用InputQuery(一开始用了,程序就卡在那里,看不到对话框,才想起来这个问题)。这时得调用windows函数来显示对话框。唉,这都是20年以前做的事了,想不到现在却要去捡起来。
网上找了下,资源格式是没找到,不过有人说ResEdit可以编辑。下载下来,果然好用。设计好一个简单的对话框资源,生成的rc文件如下:
//省略一些头文件信息
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG1 DIALOG 0, 0, 186, 95
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION “Dialog”
FONT 8, “Ms Shell Dlg”
{
DEFPUSHBUTTON “OK”, IDOK, 28, 59, 50, 14
PUSHBUTTON “Cancel”, IDCANCEL, 94, 58, 50, 14
EDITTEXT IDC_EDIT1, 27, 22, 118, 14, ES_AUTOHSCROLL
}
把该资源编译一下,加上一个对话框函数,连接到Delphi程序,搞定。