[求助]如何使AutoCad获得输入焦点
我的dll命令代码如下:public static void Run()
{
MainForm mainForm = new MainForm();
mainForm.IsRunInCAD = true;
mainForm.Show();
}
public void Initialize()
{
Run();
}
public void Terminate()
{
}
在mainForm中有一个DataGridView,我想通过双击DataGridView的一列从而在Cad中GetPoint,该部分代码如下:
private void dgvLightningRods_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
this.Hide();
PromptPointResult pPtRes;
PromptPointOptions pPtOpts = new PromptPointOptions("");
Document acDoc = Application.DocumentManager.MdiActiveDocument;
pPtOpts.Message = "\n位置: "
pPtOpts.AllowNone = true;
pPtRes = acDoc.Editor.GetPoint(pPtOpts);
if ((pPtRes.Status != PromptStatus.Cancel) && (pPtRes.Status != PromptStatus.None))
{
//do something
}
this.Show();
}
该函数执行后,屏幕上出现的是文本输入的“I”形光标,而不是Cad中的GetPoint的“十”字形光标,此时在Cad中单击,才会出线“十”字形光标,便可以GetPoint。有没有办法可以直接出现“十”字形光标,提示用户输入呢?我初步怀疑是this.Hide()之后Cad没有获得输入焦点的原因,但不知道怎样解决?请高手指点。
调用winapi 回复 sxpd 的帖子
能给出代码吗? winapi SetFocus
先获取当前文档的句柄,doc.Window.Handle
static extern int SetForegroundWindow(IntPtr hwnd); 希望老师做个简单的例子...如何用doc.Window.Handle...? 学习了!调用WinApi
页:
[1]