Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Explanation of SendMessage message numbers?

I've successfully used the Windows SendMessage method to help me do various things in my text editor, but each time I am just copying and pasting code suggested by others, and I don't really know what it means. There is always a cryptic message number that is a parameter. How do I know what these code numbers mean so that I can actually understand what is happening and (hopefully) be a little more self-sufficient in the future? Thanks.

Recent example:

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, uint wMsg,UIntPtr wParam, IntPtr lParam);

SendMessage(myRichTextBox.Handle, (uint)0x00B6, (UIntPtr)0, (IntPtr)(-1));
like image 741
JohnnyM Avatar asked Oct 15 '08 20:10

JohnnyM


2 Answers

This is the windows message code.
They are defined in the header files, and generally available translated as an include of some sort with different languages.

example:
WM_MOUSEMOVE = &H200
MK_CONTROL = &H8
MK_LBUTTON = &H1
MK_MBUTTON = &H10
MK_RBUTTON = &H2
MK_SHIFT = &H4
MK_XBUTTON1 = &H20
MK_XBUTTON2 = &H40

see http://msdn.microsoft.com/en-us/library/ms644927(VS.85).aspx#windows_messages.

like image 134
Francesca Avatar answered Sep 20 '22 06:09

Francesca


Each message in Windows is signified by a number. When coding using the Windows SDK in native code, these are provided by defines such as WM_CHAR, WM_PAINT, or LVM_GETCOUNT, but these defines are not carried over to the .NET framework because in the most part, the messages are wrapped by .NET events like OnKeyPressed and OnPaint, or methods and properties like ListView.Items.Count.

On the occasion where there is no wrapped event, property or method, or you need to do something that isn't supported at the higher level, you need the message numbers that Windows uses underneath the .NET framework.

The best way to find out what a particular number actually means is to look in the Windows SDK headers and find the definition for that number.

like image 38
Jeff Yates Avatar answered Sep 22 '22 06:09

Jeff Yates