VB中的msgbox 能控制它的字体类型和大小的吗.??

jackyhyoung 2005-06-08 11:57:09
各位帮帮忙...
...全文
2366 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxbkkk 2005-06-20
  • 打赏
  • 举报
回复
可以吧,加font属性
Winters_lee 2005-06-20
  • 打赏
  • 举报
回复
楼上的答案是“正解”!
lfshf 2005-06-18
  • 打赏
  • 举报
回复
“茴”字有四种写法
zhujiechang 2005-06-18
  • 打赏
  • 举报
回复
捕捉调用msgbox 窗体的wm_activate事件就能检测到msgbox窗体。
opensesame 2005-06-16
  • 打赏
  • 举报
回复
可以,修改Msgbox窗口的回调函数可以实现,这要掌握窗口的运行原理!
祝你好运!
rainstormmaster 2005-06-11
  • 打赏
  • 举报
回复
//VB中的msgbox 能控制它的字体类型和大小的吗.??

可以是可以,不过代价很大,还不如你自己用form模拟一个来得快
还想懒够 2005-06-10
  • 打赏
  • 举报
回复
如果在调试环境下,该段代码运行无效。不知道为什么,编成Exe就可以看到效果了。
还想懒够 2005-06-10
  • 打赏
  • 举报
回复
可以控制。但我只控制到字体,如果字体放大,似乎里面的内容显示不是太正常。

以下为代码。注:代码只允许在编译后才能运行。

注:窗体上有两个控件,一为Command,一为Timer

Private Const MsgTitle As String = "消息框提示"

Private Const WM_SETFONT = &H30

Private Declare Function CreateFont Lib "gdi32" _
Alias "CreateFontA" (ByVal H As Long, _
ByVal W As Long, ByVal E As Long, ByVal O As Long, _
ByVal W As Long, ByVal I As Long, ByVal U As Long, _
ByVal S As Long, ByVal C As Long, ByVal OP As Long, _
ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, _
ByVal F As String) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long


Private Sub Command1_Click()
Dim msg As String

Timer1.Enabled = True

MsgBox "提示信息", vbOKOnly, MsgTitle

End Sub

Private Sub Timer1_Timer()
Dim hWnd As Long
Dim hWndChild As Long

hWnd = FindWindow(vbNullString, MsgTitle)
If hWnd <> 0 Then
'再找子窗体
hWndChild = FindWindowEx(hWnd, 0, "Static", vbNullString)
If hWndChild <> 0 Then
Dim hFont As Long
hFont = CreateFont(20, 0, 0, 0, 0, 0, 0, 0, 106, 0, 16, 0, 0, "隶书")

SendMessage hWndChild, WM_SETFONT, hFont, 0

Timer1.Enabled = False
End If

'同理,平时咱们看到一些消息框可以自动关闭,或者显示还剩多少秒,也可以
'找到这个hWndChild后,利用SetWindowText函数来实现。关闭窗体直接发送
'SendMessage hWnd,WM_CLOSE,0,0即可。
End If

End Sub

Private Sub Form_Load()
Me.Timer1.Interval = 20
End Sub
ahbbnimor 2005-06-09
  • 打赏
  • 举报
回复
mark
szjhxu 2005-06-08
  • 打赏
  • 举报
回复
对,自己做一个窗体。
hsghxm 2005-06-08
  • 打赏
  • 举报
回复
不能的,正如楼上所说,自己用窗体做个msgbox
supergreenbean 2005-06-08
  • 打赏
  • 举报
回复
不能,不如你自己用form模拟一个来得快

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧