
02-11-2008, 20:14
|
 |
|
|
חבר מתאריך: 08.10.02
הודעות: 827
|
|
בין שתי תוכניות אתה יכול לשלוח הודעות ככה:
קוד:
UINT DoSomethingID = RegisterWindowMessage("DoSomething");
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
switch(Message) {
case DoSomethingID: {
//Do Something
printf("Param1: %d, Param2: %d\n", (int) wParam, (int) lParam);
}
break;
}
}
וזה בתוכנה ששולחת:
קוד:
int Param1 = 5, Param2 = 3;
UINT DoSomethingID = RegisterWindowMessage("DoSomething");
PostMessage(hWnd, DoSomethingID, (WPARAM) Param1, (LPARAM) Param2);
היתרון בשימוש ב RegisterWindowMessage זה שה ID של ההודעה נקבע בזמן ריצה והוא לא אמור להיות בשימוש על ידי תוכניות אחרות...
-----------------------------------------------------------------------------------------------------------
דרך אחרת תהייה עם שימוש ב WM_APP אך לא יודע אם זה פועל בין תוכניות...
התוכניות שמקשיבה להודעות:
קוד:
#DEFINE WM_DOSOMETHING WM_APP+100
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
switch(Message) {
case WM_DOSOMETHING: {
//Do Something
printf("Param1: %d, Param2: %d\n", (int) wParam, (int) lParam);
}
break;
}
}
בתוכניות ששולחת הודעות:
קוד:
#DEFINE WM_DOSOMETHING WM_APP+100
int Param1 = 5, Param2 = 3;
PostMessage(hWnd, WM_DOSOMETHING, (WPARAM) Param1, (LPARAM) Param2);
_____________________________________
Error: Keyboard not found
Press F1 to continue
|