WEB开发网
开发学院软件开发VC 如何从 MFC 应用程序中调用 .NET 框架 阅读

如何从 MFC 应用程序中调用 .NET 框架

 2006-07-20 11:41:42 来源:WEB开发网   
核心提示: Figure 2 重新被激活得 Typematic此时可以看到对话框里显示出了一列缩写信息,敲入“n”代表姓名,如何从 MFC 应用程序中调用 .NET 框架(2),“a”代表地址,Typematic 发送相应的字符串到当前窗体或应用程序,不

Figure 2 重新被激活得 Typematic

此时可以看到对话框里显示出了一列缩写信息。敲入“n”代表姓名,“a”代表地址,Typematic 发送相应的字符串到当前窗体或应用程序。这些缩写信息定义在一个静态表中,你可以将它们改为自己的信息:

struct ABBREV {
  TCHAR key;
  LPCTSTR text;
} MYABBREVS[] = {
   { _T(''n''),_T("Elmer Fudd") },
   { _T(''a''),_T("1 Bunny Way") },
   ...
   { 0,NULL}
  };   

当然,在实际开发过程中,你不必硬编码这些信息,你可以提供一个用户界面来定制它,并将其保存在用户配置文件中,以便这一台机器的每一个用户都有不同的设置。

Typematic 示范了一些其它的技巧:如何注册热键来激活你的应用程序(参见 2000 第十二期的专栏)以及如何让静态文本控件接受键盘输入(你必须处理 WM_GETDLGCODE 并返回DLGC_WANTCHARS )。

Typematic 定义了一个专门的静态文本控件 CStaticAbbrev,它既可以显示缩写信息也可以读取加速键。代码如 Figure 3 所示。当用户按下热键。 Typematic 便被唤醒并将焦点定位到该 CStaticAbbrev 控件,等待字符输入。当 CStaticAbbrev::OnChar 获得一个与表中缩写之一匹配的键时,它便隐藏对话框,然后调用辅助函数 SendString 发送文本:

// in CStaticAbbrev::OnChar
if (/* find char in ABBREV table */) {
  GetParent()->ShowWindow(SW_HIDE); // hide dialog
  SendString(abbrev.text);     // send text
}   

当 Typematic 将自己隐藏后,Windows 自动将焦点恢复到之前拥有焦点的窗口,这样输入便定下向到用户按热键之前焦点所在的窗口。非常聪明,不是吗?如果你需要将输入定向到一个特定的应用程序或窗口,调用 SendInput 之前一定要确保它是活动的,为此可以调用 SetForegroundWindow 函数。

上一页  1 2 3 4 5  下一页

Tags:如何 MFC 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接