Heelp! Как получить Handle текущей формы? (+)
От: Антонш  
Дата: 15.06.06 09:33
Оценка:
программируется апликуха под 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' — Хитрик Денис
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.