在c#中使用sendmessage
日期: 2005-02-04
備註:主要描述在呼叫api函式sendmessage時資料型別的轉換。
sendmessage是乙個在user32.dll中宣告的api函式,在c#中匯入如下:
using system.runtime.interopservices;
[dllimport("user32.dll", entrypoint="sendmessagea")]本文描述其引數 lparam 的用法,主要是資料型別之間的轉化。public static extern int sendmessage (intptr hwnd, int wmsg, intptr wparam, intptr lparam);
● 一種最簡單的處理方式是宣告多個sendmessage函式(overload),用所需的資料型別直接替換intptr。例如:
//宣告:[dllimport("user32.dll", entrypoint="sendmessagea")]
private static extern intsendmessage(intptr hwnd, int wmsg, intptr wparam,stringlparam);
[dllimport("user32.dll", entrypoint="sendmessagea")]
private static extern intsendmessage(intptr hwnd, int wmsg, intptr wparam, refrectanglelparam);
//呼叫:● 對要求返回字串的型別(out string)可以用 stringbuilder 代替,此時不需要 out/ref。例如:string s = "hello, floodzhu";
sendmessage(this.textbox1.handle,wm_settext, intptr.zero, s);
rectangle rect = new rectangle();
sendmessage(this.richtextbox1.handle,em_getrect, (intptr)0, ref rect);
[dllimport("user32.dll", entrypoint="sendmessagea")]private static extern int sendmessage (intptr hwnd, int wmsg, int wparam,stringbuilderlparam);
private void button1_click(object sender, system.eventargs e)
[dllimport("user32.dll", entrypoint="sendmessagea")]或者private static extern int sendmessage (intptr hwnd, int wmsg, intptr wparam, intptr lparam);
private void button2_click(object sender, system.eventargs e)
private void button2_click(object sender, system.eventargs e)
在C 中使用Queue
介紹 queue類執行將放在在queue中的物件採用先進先出的資料結構。物件從一端插入到佇列中從另一端移除。物件的順序程序使用queue queue介面 queue類實現了三個主要集合介面 icollection ienumerable和icloneable。queue的重要方法 queue類常用的...
在 C 中使用畫筆
出處 在 c 中使用畫筆 public class rectangle shape protected point m start protected point m end public rectangle point start,point end,color fgcolor m start s...
在 C 中使用 Python script
想要在c 中嵌入script 除了自己寫指令碼引擎外,lua,python 都可以在c 中使用,另外 monobind,angelscript library 都是一些c script library,可以嵌入到c 中使用 今天在c 中試著嵌入 python 示例 在 python 2.5.2 de...