программируется апликуха под Windows Mobile 2003
пишу на C#
для перехвата кнопок "DIAL" и "HANGUP" в примерах MS SDK есть такой код:
case WM_INITDIALOG:
SHMENUBARINFO mbi;
SHCreateMenuBar(&mbi)
SendMessage(mbi.hwndMB, SHCMBM_OVERRIDEKEY, VK_TTALK /* кнопка позвонить */,
MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY,
SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
mbi — содается менюбар (зачем-то) а потом (зачем-то туда еще и мессага посылается). Ну ладно, хрен бы с ней, значит именно туда и надо.
Вот. После этого можно ловить кнопки управления звонками сразу из приложения. Через WM_HOTKEY (в lparam код клавиши).
Блин. КАК НА C# сделать?!!!
//**********************************************************
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
//**********************************************************
//---------------------------------
SendMessage(
this.
, SHCMBM_OVERRIDEKEY, VK_TTALK, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY,
SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
//---------------------------------
Блин, а слать-то некому! Ни одного Handle нету.
Вот хочу нечто так сделать. Этот код посылает мессагу в контрол, например:
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref CHARFORMAT2 lParam);
private void SetSuperScript()
{
CHARFORMAT2 fmt=new CHARFORMAT2();
fmt.cbSize = Marshal.SizeOf(fmt);
fmt.dwMask = CFM_SUPERSCRIPT;
fmt.dwEffects = CFE_SUPERSCRIPT;
SendMessage(this.richTextBox1.Handle, EM_SETCHARFORMAT, SCF_SELECTION, ref fmt);
}
11.04.07 18:36: Перенесено модератором из '.NET' — Хитрик Денис