请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 121|回复: 4

提2个winform的小问题

[复制链接]

1

主题

2

帖子

2

积分
交易币
0

新手入门

Rank: 1

发表于 2021-12-29 15:21:17 | 显示全部楼层 |阅读模式
有2个小问题,一直没找到答案,请教一下大家:
1.窗体最小化后(即执行winform.hitMin()后),如何还原窗体?只找到winform.hitMax(),但它是使窗体最大化。

搜索
复制

2.用aardio调用autocad的时候,winform.hitMin()没有马上执行。
测试代码如下:
        winform.hitMin();
import com.cad;
var cad =com.cad();
  var ss = cad.ActiveDocument.Utility.GetEntity(,,'请依次选择需要输出到Excel的单选文本:\n');

import com.excel;
var excel = com.excel();
var actSheet = excel.ActiveWorkbook.ActiveSheet;

    var excel = ..com.GetObject( "Excel.Application" );
    var actFile = excel.ActiveWorkbook;
    var actSheet = actFile.ActiveSheet();

for(k,v in ss){                 
        actSheet.Cells[1][k].setValue2( v.TextString );
}


     使用时,往往是已经执行到: var ss = cad.ActiveDocument.Utility.GetEntity(,,'请依次选择需要输出到Excel的单选文本:\n');
    winform窗体还没有最小化,要等到全部代码都执行完才会执行winform.hitMin()。
   似乎是,cad没有返回开始执行的信号给winform,winform一直在等回音。

   这2个小问题,遇到也用一段时间了,一直没想问题。见笑~~

回复

使用道具 举报

0

主题

17

帖子

66

积分
交易币
0

编程一段

Rank: 2

发表于 2021-12-29 16:04:02 | 显示全部楼层
1.直接发消息就行了
[aardio] 纯文本查看 复制代码
::PostMessage(hwnd, 0x112/*_WM_SYSCOMMAND*/,0xF120/*_SC_RESTORE*/, 0);  

2.你先
[aardio] 纯文本查看 复制代码
winform.show();
再写其它操作代码

实际上你要初始窗口最小化,直接
[aardio] 纯文本查看 复制代码
winform.show(6/*_SW_MINIMIZE*/)
就行,不用显示了再模拟最小化
回复 支持 1 反对 0

使用道具 举报

0

主题

3

帖子

2

积分
交易币
0

新手入门

Rank: 1

发表于 2021-12-30 00:02:13 | 显示全部楼层
还是要看文档:
最小化后还原:  winform.show(9/*_SW_RESTORE*/)
最小化显示:
winform.show(6/*_SW_MINIMIZE*/)

也可以用 win.showForeground() 函数还原窗口。


winform.hitMin() 是模拟点击,你代码停下来窗口才能处理消息。而 winform.show() 是直接控制窗口,不用等待消息处理。



回复 支持 反对

使用道具 举报

0

主题

1

帖子

4

积分
交易币
0

新手入门

Rank: 1

发表于 2021-12-30 00:32:15 | 显示全部楼层
本帖最后由 guangdonglbq 于 2022-1-5 15:31 编辑

用两位回复的办法把问题解决了,谢谢~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



GMT+8, 2022-1-19 07:07 , Processed in 0.075197 second(s), 26 queries .

© 2001-2011 Powered by Discuz! X3.2.

快速回复 返回顶部 返回列表