测试下Live Writer 插件生效否!

测试下客户端插件!



1、首先定义一个存储热键的变量。WORD m_wHotKey = 0x00;

2、在对话框中增加一个热键输入框IDC_HOTKEY(注:不是EditBox而是HotKey框哦),并增加一个设置按钮响应事件如下:

void CHotkeyDlg::OnSetup() 

{

 // 这里取出设置的热键值

 m_wHotKey=(WORD)SendDlgItemMessage(IDC_HOTKEY,HKM_GETHOTKEY,0,0);

 // 注册热键

 RegHotkey();

}

3、在程序中加入一个注册热键的函数以便使用。如:

void CHotkeyDlg::RegHotkey()

{

       // 如果没有设置的热键时,则使用默认的热键,这里为:ctrl + alt + e

 if (0x00 == m_wHotKey)

  m_wHotKey = MAKEWORD('E', HOTKEYF_ALT|HOTKEYF_CONTROL);



 // 将热键值设置到热键输入框

 ::SendDlgItemMessage(m_hWnd,IDC_HOTKEY,HKM_SETHOTKEY,0xffff&m_wHotKey,0);

 // 安全起见,注销先前的热键

 UnregisterHotKey(m_hWnd,99999);

 UINT Mod=0;

        // 看看alt键是否已经被设置

 if(HOTKEYF_ALT&HIBYTE(m_wHotKey))

  Mod|=MOD_ALT;

 if(HOTKEYF_CONTROL&HIBYTE(m_wHotKey))

  Mod|=MOD_CONTROL;

 if(HOTKEYF_SHIFT&HIBYTE(m_wHotKey))

  Mod|=MOD_SHIFT; 

 // 这里进行热键注册,最后一个参数因为我们在存储热键值时使用了16位存储,故这里取出低位值

 if ( !RegisterHotKey(m_hWnd,99999,Mod, LOBYTE(m_wHotKey)) )

 {

  AfxMessageBox("registre failed"); 

  return;

 }



 // 将我们设置的热键存储起来。这里存储到windows目录下,当然你也可以指定存储到其它地方。

 char sz[20];

 sprintf(sz,"%d",m_wHotKey); 

 WritePrivateProfileString("setup","hotkey",sz,"hotkey.ini");

}

4、在初始化函数中加入:

       // 取出我们设置的热键值,第三个参数为默认构造的热键值ctrl + alt + e

 m_wHotKey=0xffff&GetPrivateProfileInt("setup","hotkey",MAKEWORD('E',HOTKEYF_ALT|HOTKEYF_CONTROL),"hotkey.ini");

 // 注册热键

 RegHotkey();

5、在窗体Destory函数中加入热键的注销函数:

     UnregisterHotKey(m_hWnd,99999);



通过以上几个步骤,你的系统热键就可以成功使用了,试试看!

你可能感兴趣的:(Writer)