avatar
文章
268
标签
109
分类
39

首页
分类
归档
反馈
叶落花开的博客
搜索
首页
分类
归档
反馈
aardio-HTMLayout 使用右键菜单
发表于2024-08-11|客户端开发aardio

参考链接:
http://www.terrainformatica.com/2006/08/h-smile-core-popup-and-context-menus-htmlayout-and-sciter-engines/

代码示例:

阅读全文
aardio-窗体最大化能不能固定一个尺寸
发表于2024-08-10|客户端开发aardio

拦截最大化消息,然后设置窗口为 800*600.

import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=525;bottom=365 )
winform.add(
button={ bottom=360;text="button";left=448;top=336;font=LOGFONT( name="SimSun";h=-12 );z=2;right=520;cls="button" };
richedit={ ah=1;bottom=328;text="richedit";left=8;multiline=1;top=8;font=LOGFONT( name="SimSun";h=-12 );right=520;aw=1;wrap=1;z=1;edge=1;cls="richedit" }
)
/*}}*/




winform.wndproc = function(hwnd,message,wparam,lparam){

select(message) {//判断消息类型

case 0x112/*_WM_SYSCOMMAND*/{
if(wparam == 0xF030/*_SC_MAXIMIZE*/){
win.msgbox("点击了最大化按钮","aardio")
return false;
}else if( wparam == 0x0/*_SIZE_RESTORED*/ ){
win.msgbox("点击了恢复按钮","aardio")
return false;
}else if( wparam == 0xF020/*_SC_MINIMIZE*/ ){
win.msgbox("点击了最小化按钮","aardio")
return false;
}else if(wparam=0xF120/*_SC_RESTORE*/){
//win.msgbox("还原")
if(frmChild){
frmChild.show();
}
}

}
case 0x0007/*_WM_SETFOCUS */{
//console.log("获得焦点");
if(frmChild){
frmChild.show();
}
}


}
//无返回值则继续调用默认回调函数
}



winform.show()
win.loopMessage();

方法二:

阅读全文
aardio-如何禁止移动窗口
发表于2024-08-10|客户端开发aardio

方法一:

import win.ui;
/*DSG{{*/
var winform = win.form( bottom=400;parent=...;right=600;text="aardio Form" )
winform.add( )
/*}}*/
var x,y,cx,cy=winform.getPos()
winform.wndproc = function(hwnd,message,wParam,lParam){
if(message=0x3/*_WM_MOVE*/){
winform.setPos(x,y,cx,cy)
return true;
}
}
winform.show()
win.loopMessage();
return winform;

这个消息不能阻断,移动时有点闪烁,不知道有没更好的方法。

方法二:

阅读全文
aardio-创建百度网盘那样可拖动的悬浮窗
发表于2024-08-10|客户端开发aardio

用winform.hitCaption()可以很方便的实现该功能.

//创建类似于百度网盘那样可拖动的悬浮窗(*更简便的方法)
import win.ui;
/*DSG{{*/
var winform = win.form(text="";right=60;bottom=60;bgcolor=8421376;border="none";max=false;min=false;mode="popup";title=false)
/*}}*/

winform.wndproc = function(hwnd, message, wParam, lParam) {
select(message) {
case 0x201/*_WM_LBUTTONDOWN*/{
//点击左键移动窗体
winform.hitCaption()
}
case 0x205/*_WM_RBUTTONUP*/{
//右键菜单
var popmenu = win.ui.popmenu(winform);
popmenu.add('关闭',
function(id) {
win.close(winform.hwnd);
})
popmenu.popup()
}
}
}
win.setTopmost(winform.hwnd); //窗口置顶
winform.show();
win.loopMessage();
阅读全文
aardio-消息回调wndproc message消息列表
发表于2024-08-10|客户端开发aardio

按下鼠标左键拖动示例:

import win.ui;
var mainForm = win.form(right=599;bottom=399)

mainForm.wndproc = function(hwnd,message,wParam,lParam){
if( message == 0x201/*_WM_LBUTTONDOWN*/ )
::User32.SendMessage( mainForm.hwnd, 0xA1/*_WM_NCLBUTTONDOWN*/ ,2/*_HTCAPTION*/, 0 )
}

mainForm.show()
win.loopMessage();

消息回调wndproc message消息列表:

阅读全文
aardio-多窗口变量传递
发表于2024-08-10|客户端开发aardio

aardio多窗口交互的方法

将窗体对象赋值到全局变量,就可以在其他代码文件中直接使用了。例如主窗体我们一般这样写:
mainForm = win.form(text="使用选项卡控件";right=599;bottom=399)
注意一个程序中只有主窗体命名为 mainForm 。

但大多时候,我们应当把其他窗体对象赋值以局部变量,例如:
var frmTabPage1 = win.form(text="选项卡的子窗口";right=599;bottom=399)
上面的 var 语句声明一个局部变量 - 局部变量限制了他的作用域在定义他的语句块中生效,不能在其他文件中访问该局部变量。

实际上全局变量要少用,全局的窗体对象更应该少用,每个窗体应当保持独立性。打个比方,一个程序小象一个小世界,各个子窗口就象各个小国家,国家之间要保持一定的独立性,国家与国家之间有什么事儿要沟通 - 你不能直接随意的冲过国界跑来跑去的玩儿(大家都这样搞,就象各个窗体的控件都这样搞,程序就会变的很混乱),你得经过外交部门。这个外交部门,在我们写程序的时候来讲,我们可以用以下几种方式来实现:

方式1、直接在 main.aardio 中创建全局变量,例如 main.aardio代码如下:

阅读全文
1…232425…45
avatar
叶落花开
持续学习,记录后端技术、web技术,以及对认知、技术变现的思考。
文章
268
标签
109
分类
39
友情链接
  • 各大高校博士招生信息
  • 小新软件安装服务
分类
  • IT技术35
    • Anki19
    • Linux7
    • Mac1
    • Windows2
  • Web技术23
    • Electron2
    • Hexo搭建博客教程9
标签
Anki Apache Containerd Corba Docker Dockerd Electron English Git Hexo JNA JacORB Java Javascript Jmeter K8s Kubernetes Kuboard Linux Mac Maven MongoDB Moviepy Node Nodejs OpenAI PMD PV PVC Python Realm RealmSwift Selenium Service Simulator Spring SpringBoot SpringMVC Sqlite Statefuset
网站资讯
文章数目 :
268
最后更新时间 :
©2020 - 2025 By 叶落花开
框架 Hexo|主题 Butterfly
本地搜索
数据库加载中