窗口始终浮在上面的图钉按钮示例程序(详细编程)

原创 2002年07月16日 17:55:00

 

 

 

PushPin类图钉按钮

 类原作者:PJ Naughter  类改进、使用评论、示例作者: 龚建伟      ◆龚建伟技术主页◆

headline1.gif

 

    PushPin类能做出象VC6中Properties对话框图钉按钮,示例程序中修改了原类,并能真正将窗口“钉”在最上层,保持可见(Keep Visible). 在VC6中使用,编出的程序可在9X/ME/2K运行。推荐给大家试试,有好作品别忘了给我寄一份。

首先下载类的源程序:下载(含我做的示例程序)

好了,如果是初学VC的朋友,先跟着做示例程序吧,老鸟则自已去看程序吧。

 

1. 新建项目:在VC6中用MFC新建一个基于对话框的PushPinTest项目,并在对话框中加入一个按钮控件(示例中对话框左上角那个按钮)IDC_BUTTON_VISIBLE,特别注意:要把按钮的Properties->Style中,选上Ower draw, Bitmap, Notify属性

2.在项目中插入类文件:把PushPin.cpp和PushPin.h文件copy 到项目文件夹下(注意:你要是想做得和我和示例一样具有keep visible功能,就在我做示例程序中copy,不要用原作者的类文件,因为示例程序中的类文件是经过改进的)

单击Project->Add to Project->Files中,在文件选择对话框中选上PushPin.cpp和PushPin.h文件,单击OK; 怎么样,在ClassView中看到了CPushPinButton类吧。 打开ClassWizard若看不到CPushPinButton类,可关闭ClassWizard(不用关闭VC),在项目文件夹下把PushPinTest.clw文件删除,再打开ClassWizard,会看到提示:"The classwizard database doesn't exist,.....,would you like to build it from your source files?",选Yes,出现一个对话框,单击 Add All,再单击OK,好了,在ClassWizard中可以看到CPushPinButton类了。

并将我做的示例程序中res文件夹中的位图pinned.bmp,unpinned.bmp Import到项目中,对应ID分别为: IDB_PINNED_BITMAP,IDB_UNPINNED_BITMAP。

3. 为按钮控件IDC_BUTTON_VISIBLE添加一个CPushPinButton控制变量

首先,在PushPinTestDlg.h中加上:#include "PushPin.h"

打开ClassWizard->Member Variable为IDC_BUTTON_VISIBLE添加一个CPushPinButton控制变量m_ctrlPushPin.

4.利用ClassWizard为IDC_BUTTON_VISIBLE添加BN_CLICKED消息处理函数,名称用缺省名称OnButtonVisible(),在函数中加入如下代码:

void CPushPinTestDlg::OnButtonVisible() 
{
m_ctrlPushPin.ProcessClick();
m_bVisible=!m_bVisible;
if(m_bVisible)
{
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
}
else
{
SetWindowPos(&wndBottom, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOREDRAW);
BringWindowToTop();
}
}

其中m_bVisible是BOOL型变量,你可以在ClassView在CPushPinTestDlg中单击鼠标右键,Add Member Variable中加入,并在CPushPinTestDlg类构造函数中加入m_bVisible=FALSE:

CPushPinTestDlg::CPushPinTestDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPushPinTestDlg::IDD, pParent)
{.....m_bVisible=FALSE;}

大功告成,Build -> Run 吧,好了吗?有问题告诉我

div浮动到img上面

此时需要在外层有一个position的div, 如果没有,可以在外面加一层。 而在div与img的样式中加入绝对定位。 并且在div中加入z-index为2, img的z-index为1, 并且...
  • xiaoouh
  • xiaoouh
  • 2016年02月17日 14:32
  • 923

浮在上面的透明FALSH

style="Z-INDEX: 1; LEFT: 29px; WIDTH: 220px; POSITION: absolute; TOP: 1px; HEIGHT: 222px">          ...
  • haibo0668
  • haibo0668
  • 2016年06月02日 12:44
  • 134

android RelativeLayout 按钮总在最上层 问题

From: https://stackoverflow.com/questions/29906679/android-studio-button-always-appears-at-the-front...
  • luna84
  • luna84
  • 2017年10月17日 10:38
  • 373

Windows SDK编程(窗口示例程序)

/***************************************************** Windows SDK编程之一  窗口示例程序**********************...
  • n70joey
  • n70joey
  • 2010年07月02日 14:37
  • 492

按钮上面的按钮

按钮上面的按钮。我在codeguru中看到一篇文章,探讨如何在按钮上面再放一个按钮。做法非常简单,只需继承一个Cbutton类,在此类中重载PreSubclassWindow函数和OnCommand ...
  • xulistudying
  • xulistudying
  • 2003年06月09日 07:43
  • 441

精彩案例-悬浮在桌面上的照相机

一、简介这个案例就是在桌面上开启一个悬浮窗,悬浮窗里实时显示照相机的内容,可以自由拖动,当在非桌面状态下自动隐藏.如下图所示(): PS:gif都失真了,凑合看,实际中这个窗口是不会闪烁的 ...
  • qq_31530015
  • qq_31530015
  • 2016年07月24日 20:29
  • 2650

Winform窗体按钮始终停靠在底部并居中的好方法

设置该Control(按钮)的锚定(Anchor)为Bottom,并把Control(按钮)放置在中间部位,则不管窗体怎么拖拉,最大化等,其位置始终在底部居中。 如下图设置:...
  • xiayukantaiyang
  • xiayukantaiyang
  • 2012年11月02日 15:41
  • 4491

实现窗口的始终置顶

实现窗口置顶,并且能在窗口后面进行鼠标操作 typedef void (WINAPI *PSWITCHTOTHISWINDOW) (HWND,BOOL); PSWITCHTOTHISWI...
  • u013105439
  • u013105439
  • 2016年11月22日 01:08
  • 818

canvas画一个图片,并实现点击按钮上移下移左移右移放大缩小

左移     右移     上移     下移     放大     缩小      // canvas元素, 图片元素 var x = document.queryS...
  • qq_33769914
  • qq_33769914
  • 2017年06月27日 10:20
  • 819

webView 上添加按钮

1 2 3 4 5 6 7 UIWebView *    WebView;     UIButton*    _webButton;...
  • jianandjan
  • jianandjan
  • 2015年10月16日 00:35
  • 1283
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:窗口始终浮在上面的图钉按钮示例程序(详细编程)
举报原因:
原因补充:

(最多只允许输入30个字)