在网上找了好多不行呀
------解决方案--------------------
你的邮箱地址?我将示例发给你
------解决方案--------------------
用pb带的菜单位置是不好控制,可以用api实现,呵呵,效果好些
//定义一个结构
global type pointapi from structure
ulong x
ulong y
end type
//声明
function ulong getcursorpos (ref pointapi lppoint) library "user32.dll" alias for "GetCursorPos"
function ulong findwindow (ulong lpclassname,string lpwindowname) library "user32.dll" alias for "FindWindowA"
function ulong findwindow (string lpclassname,string lpwindowname) library "user32.dll" alias for "FindWindowA"
function ulong trackpopupmenu (ulong hmenu,ulong wflags,ulong xx,ulong yy,ulong nreserved,ulong hwnd,ulong abc) library "user32.dll" alias for "TrackPopupMenu"
function ulong createpopupmenu () library "user32.dll" alias for "CreatePopupMenu"
function ulong destroymenu (ulong hmenu) library "user32.dll" alias for "DestroyMenu"
function ulong appendmenu (ulong hmenu,ulong wflags,ulong widnewitem,string lpnewitem) library "user32.dll" alias for "AppendMenuA"
//代码部分
menu lm_current
integer li_x
integer li_y
ulong hmenu,hselect
pointapi grid
choose case lparam
case 515
this.show()
this.WindowState = Normal!
case 517
hmenu = createpopupmenu()
appendmenu(hmenu,0,1,"显示控制台")
appendmenu(hmenu,0,2,"隐藏控制台")
// appendmenu(hmenu,2048,2,"")
// appendmenu(hmenu,0,3,"退出程序")
getcursorpos(grid)
hselect = trackpopupmenu(hmenu,2 + 256 + 128,grid.x,grid.y,0,handle(this),0)
Choose Case hselect
Case 1
show()
windowstate = normal!
Case 2
windowstate = Minimized!
Case 3
destroymenu(hmenu)
cb_exit.Post Event clicked()
End Choose
end choose
return
------解决方案--------------------
我遇到过!我是研究了好多天,是发现因为窗体问题,我加了段代码,解决掉了.
大致的意思就是让窗体不可见就好了,因为菜单的位置是相对窗体的!
------解决方案--------------------
我试过网上的代码,最小化到托盘是容易的。
但是点击右键弹出菜单,菜单的位置总是出现在屏幕左上角。
祝楼主成功。
------解决方案--------------------
在点击右键弹出窗口前,把最小化的窗口还原,但不要显示出来,即可解决您的问题