用vb使用对话框资源创建对话框
2005-09-24 01:45
357 查看
'---------------------------------------------------------------------------------------
' Module : Module1
' DateTime : 2005-9-24 01:35
' Author : Lingll
' Purpose :
'---------------------------------------------------------------------------------------
Option Explicit
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" _
(ByVal lpLibFileName As String) As Long
Public Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Public Declare Function CreateDialogParam Lib "user32.dll" _
Alias "CreateDialogParamA" ( _
ByVal hInstance As Long, ByVal lpName As Long, _
ByVal hWndParent As Long, ByVal lpDialogFunc As Long, _
ByVal lParamInit As Long) As Long
Public Const SW_SHOW As Long = 5
Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const WM_COMMAND As Long = &H111
Public Const WM_SYSCOMMAND As Long = &H112
Public Const SC_CLOSE As Long = &HF060&
Public Declare Function EndDialog Lib "user32.dll" (ByVal hDlg As Long, ByVal nResult As Long) As Long
Public Declare Function GetMessage Lib "user32.dll" Alias "GetMessageA" (ByRef lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
Public Declare Function TranslateMessage Lib "user32.dll" (ByRef lpMsg As MSG) As Long
Public Declare Function DispatchMessage Lib "user32.dll" Alias "DispatchMessageA" (ByRef lpMsg As MSG) As Long
Public Declare Sub PostQuitMessage Lib "user32.dll" (ByVal nExitCode As Long)
Public Type POINTAPI
x As Long
y As Long
End Type
Public Type MSG
hwnd As Long
message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type
Public Function DialogProc( _
ByVal hwndDlg&, ByVal uMsg&, _
ByVal wParam&, ByVal lParam&) As Long
Select Case uMsg
Case WM_SYSCOMMAND
If wParam = SC_CLOSE Then
Call EndDialog(hwndDlg, 0)
PostQuitMessage 0
End If
Case WM_COMMAND
Select Case wParam
Case 6
MsgBox "you press the YES button"
Case 7
MsgBox "you press the NO button"
End Select
End Select
DialogProc = 0
End Function
Public Sub Main()
Dim hDlg&
Dim tMsg As MSG
Dim hIns&
hIns = LoadLibrary("shdoclc.dll")
hDlg = CreateDialogParam(hIns, 24581, _
0, AddressOf DialogProc, 0)
FreeLibrary hIns
ShowWindow hDlg, SW_SHOW
While GetMessage(tMsg, 0, 0, 0)
Call TranslateMessage(tMsg)
Call DispatchMessage(tMsg)
Wend
End Sub
最好编译了再运行,不然可能会有些问题
' Module : Module1
' DateTime : 2005-9-24 01:35
' Author : Lingll
' Purpose :
'---------------------------------------------------------------------------------------
Option Explicit
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" _
(ByVal lpLibFileName As String) As Long
Public Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Public Declare Function CreateDialogParam Lib "user32.dll" _
Alias "CreateDialogParamA" ( _
ByVal hInstance As Long, ByVal lpName As Long, _
ByVal hWndParent As Long, ByVal lpDialogFunc As Long, _
ByVal lParamInit As Long) As Long
Public Const SW_SHOW As Long = 5
Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const WM_COMMAND As Long = &H111
Public Const WM_SYSCOMMAND As Long = &H112
Public Const SC_CLOSE As Long = &HF060&
Public Declare Function EndDialog Lib "user32.dll" (ByVal hDlg As Long, ByVal nResult As Long) As Long
Public Declare Function GetMessage Lib "user32.dll" Alias "GetMessageA" (ByRef lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
Public Declare Function TranslateMessage Lib "user32.dll" (ByRef lpMsg As MSG) As Long
Public Declare Function DispatchMessage Lib "user32.dll" Alias "DispatchMessageA" (ByRef lpMsg As MSG) As Long
Public Declare Sub PostQuitMessage Lib "user32.dll" (ByVal nExitCode As Long)
Public Type POINTAPI
x As Long
y As Long
End Type
Public Type MSG
hwnd As Long
message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type
Public Function DialogProc( _
ByVal hwndDlg&, ByVal uMsg&, _
ByVal wParam&, ByVal lParam&) As Long
Select Case uMsg
Case WM_SYSCOMMAND
If wParam = SC_CLOSE Then
Call EndDialog(hwndDlg, 0)
PostQuitMessage 0
End If
Case WM_COMMAND
Select Case wParam
Case 6
MsgBox "you press the YES button"
Case 7
MsgBox "you press the NO button"
End Select
End Select
DialogProc = 0
End Function
Public Sub Main()
Dim hDlg&
Dim tMsg As MSG
Dim hIns&
hIns = LoadLibrary("shdoclc.dll")
hDlg = CreateDialogParam(hIns, 24581, _
0, AddressOf DialogProc, 0)
FreeLibrary hIns
ShowWindow hDlg, SW_SHOW
While GetMessage(tMsg, 0, 0, 0)
Call TranslateMessage(tMsg)
Call DispatchMessage(tMsg)
Wend
End Sub
最好编译了再运行,不然可能会有些问题
相关文章推荐
- 不使用资源文件动态创建对话框的做法
- Visual c++中不使用对话框模板资源创建对话框应用
- VC/MFC如何使用CreateEx()创建自己的对话框资源
- 不使用资源文件动态创建对话框的做法
- 不使用资源文件动态创建对话框的做法
- [原]不使用资源文件动态创建对话框的做法
- 不使用对话框资源模版创建对话框
- MFC不使用对话框资源模版创建对话框
- 不使用资源文件动态创建对话框的做法
- Visual c++中不使用对话框模板资源创建对话框应用
- 【搬运】VB.NET创建和使用RESX资源
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
- 《Windows API》使用对话框资源创建窗口
- C#中创建和使用资源动态链接库
- iOS创建.a和.framework静态库,以及Bundle资源文件的使用
- 使用VB.net 创建简单的TTS中英文混合语音朗读
- Android 使用Vector XML文件创建矢量图片资源
- Android 使用Vector XML文件创建矢量图片资源 Android Vector曲折的兼容之路
- 在一个工程中添加别的工程的中已创建好的对话框资源
- 不使用资源的对话框