时间: 2021-07-31 作者:daque
在windows下编制程序,常常创造有不少功效windows体例仍旧做了,即使不妨径直挪用,就可省去不少步调的编写,并能普及步调的运转功效。在很多情景下,咱们都不妨用“ctrl + x”、“ctrl + c”、 “ctrl + v”和“ctrl + z”辨别举行“剪切”、“复制”、“粘贴”和“撤消”操纵,由此想到,即使咱们不妨在步调中挪用体例的那些功效,就无需为怎样实行那些操纵而担心了。过程连接的探究,毕竟创造sendmessage和postmessage不妨担此重担,真是大喜过望,所以当务之急地把它们引见给诸位伙伴。 用vb5的“api欣赏器”不妨很简单地找到这两个api 因变量:declare function sendmessage lib “user32” alias “sendmessagea” _(byval hwnd as long, byval wmsg as long, byval wparam as long, _lparam as any) as longdeclare function postmessage lib “user32” alias “postmessagea” _(byval hwnd as long, byval wmsg as long, byval wparam as long, _byval lparam as long) as long 这两个因变量的功效简直是一律的,不过sendmessage是径直挪用windows因变量来发送动静,惟有这个动静实足被处置后此因变量才归来,而postmessage则给窗体的动静部队减少一个动静,这个动静将在将来某个功夫举行平常事变处置时获得处置。以次仅以sendmessage为例。 因变量中固然有四个参数,但要害的是前两个:hwnd 和wmsg。hwnd是句柄,microsoft windows运用步调中的每个窗体和控件都具有一个句柄,经过句柄不妨指明因变量的操抵制象;wmsg是一个十六进制数,代办了因变量要发送的简直动静。 底下以简直例子证明怎样用sendmessage实行“剪切”、“复制”、“粘贴”、“撤消” 和“简略”功效: 在窗体中安置一个文本框text1和五个按钮,辨别实行之上五种功效,编写以次步调。option explicitprivate declare function sendmessage lib “user32” alias “sendmessagea” _(byval hwnd as long, byval wmsg as long, byval wparam as long, lparam as any) as long const wm_cut = &h300 const wm_copy = &h301 const wm_past = &h302 const wm_clear = &h303 const wm_undo = &h304 dim fb as long private sub cmdclear_click() fb = postmessage(text1.hwnd, wm_clear, 0, 0) end sub private sub cmdcopy_click() fb = sendmessage(text1.hwnd, wm_copy, 0, 0) end sub private sub cmdcut_click() fb = sendmessage(text1.hwnd, wm_cut, 0, 0) end sub private sub cmdpast_click() fb=sendmessage(text1.hwnd, wm_past, 0, 0) end sub private sub cmdundo_click() fb=sendmessage(text1.hwnd, wm_undo, 0, 0) end sub 除去textbox外sendmessage 还不妨对ritchtextbox和combobox等举行操纵,只有相映变换hwnd参数即可。