如图,这种窗体的标题栏上向右靠近最小化按钮旁的菜单(图中红线圈起部分)是怎样做出来的?望编程高手给予解答(注:下图为迅雷6的截图):
要求:要有详细的制作过程文字描述和截图说明,若涉及到代码的也请将代码尽数贴出,使用任何编程语言实现都可以。
注:我并不是询问怎样制作菜单,而是问怎样将菜单放到窗体的标题栏上最小化按钮旁边的那个地方;本人对VB比较熟悉,若能用VB实现者必当优先采纳,请注意以上要求,谢谢!
如图,这种窗体的标题栏上向右靠近最小化按钮旁的菜单(图中红线圈起部分)是怎样做出来的?望编程高手给予解答(注:下图为迅雷6的截图):
要求:要有详细的制作过程文字描述和截图说明,若涉及到代码的也请将代码尽数贴出,使用任何编程语言实现都可以。
注:我并不是询问怎样制作菜单,而是问怎样将菜单放到窗体的标题栏上最小化按钮旁边的那个地方;本人对VB比较熟悉,若能用VB实现者必当优先采纳,请注意以上要求,谢谢!
那是一个窗体样式为NONE的窗体。 最大最小化关闭按钮其实都是图片
实际上这个窗体被“切分”成9宫格的样子,然后用picturebox填的图片在上面,所以会给你错觉是菜单栏放在了边框上。UI设计方面的问题。 这种方法通常用来实现换肤功能的
如果是在标题上的菜单就是画上去 vb不会 给Delphi的 以按钮为例 控件XPManifest
procedure tForm1.DrawCaptButton; var xFrame,yFrame,xSize,ySize:integer; r:TRect;
begin xFrame:=GetSystemMetrics(SM_CXFRAME); xSize:=GetSystemMetrics(SM_CXSIZE); ySize:= 50; yFrame:=18; inc(xFrame,2); captionButn:=Bounds(xSize,xFrame,ySize,yFrame); Canvas.handle:=GetWindowDc(self.handle); Canvas.Font.name:='宋体'; canvas.Font.Size:=9; canvas.font.color:=clRed; canvas.pen.color:=clYellow; canvas.brush.color:=clBtnFace; try DrawButtonFace(canvas,captionbutn,1,bsAutoDetect,False,False,False);//绘制 //R:=bounds(25,6,16,14); With captionButn do begin R:=bounds(38,6,48,14);
if hasreg=false then begin canvas.TextRect(R,CaptionButn.Left+5,r.top,'请注册');////在指定空件的指定位置上画上 end else begin canvas.TextRect(R,CaptionButn.Left+5,r.top,'已注册'); end;
end; finally ReleaseDc(Self.handle,canvas.handle); canvas.handle:=0; end; end;
看,在工具栏上第二个,“菜单编辑器”,你点这个后一看就懂。
这只是非常正常的控件啊!没什么复杂度啊!
不管是VB还是JAVA,还是C#都有这样的控件吧!
呼呼。。。顶罗
菜单栏控件