精华内容
下载资源
问答
  • js跳转页面与打开新窗口代码

    千次阅读 2019-04-18 15:23:13
    超链接详细介绍在原来的窗体中直接跳转用在新窗体中打开页面用:其他语法各项参数最基本的弹出窗口代码经过设置后的弹出窗口终极应用--弹出的窗口之Cookie控制 1.超链接 第一种 <a href=...

    超链接

    第一种

    <a href="http://www.jb51.net" title="脚本之家">Welcome</a>
    

    等效于js代码

    window.location.href="http://www.jb51.net";     //在同当前窗口中打开窗口
    

    第二种

    <a href="http://www.jb51.net" title="脚本之家" target="_blank">Welcome</a>
    

    等效于js代码

    window.open("http://www.jb51.net");                 //在另外新建窗口中打开窗口
    

    详细介绍

    第一种:
        <script language="JavaScript" type="text/javascript">
               window.location.href="http://www.dollare.com.cn/login.PHP?backurl="+window.location.href; 
        </script>
    
    第二种:
        <script language="javascript">
    alert("返回");
    window.history.back(-1);
       </script>
    
    第三种:
       <script language="javascript">
    window.navigate("dollare.php");
      </script>
    
    第四种:
       <script language="JavaScript">
              self.location='dollare.htm';
       </script>
    
    第五种:
       <script language="javascript">
              alert("非法访问!");
              top.location='dollare.html;
       </script>
    
    

    在原来的窗体中直接跳转用

    window.location.href=“你所要跳转的页面”;

    在新窗体中打开页面用:

    window.open(‘你所要跳转的页面’);
    window.history.back(-1);返回上一页

    其他语法

    按钮式:
    <INPUT name="pclog" type="button" value="/Go" onClick="location.href='连接地址'">
    链接式:<a href="javascript:history.go(-1)">返回上一页</a>
    <a href="<%=Request.ServerVariables("HTTP_REFERER")%>">返回上一页</a>
    直接跳转式:
    <script>window.location.href='连接地址';</script>
    开新窗口:
    <a href="/javascript:" onClick="window.open('http://www.dolalre.com.cn','','height=500,width=611,scrollbars=yes,status =yes')">123</a>
    
    
    <SCRIPT>  
    <!--  
    window.open  
    
    ('dollare.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,  
    
    resizable=no,location=no, status=no')  
    //写成一行  
    -->  
    </SCRIPT> 
    

    脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工

    具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。请对照。
      上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。

    各项参数

    其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。

    参数 | 取值范围 | 说明

    alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
    alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
    depended | yes/no | 是否和父窗口同时关闭
    directories | yes/no | Nav2和3的目录栏是否可见
    height | pixel value | 窗口高度
    hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
    innerHeight | pixel value | 窗口中文档的像素高度
    innerWidth | pixel value | 窗口中文档的像素宽度
    location | yes/no | 位置栏是否可见
    menubar | yes/no | 菜单栏是否可见
    outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
    outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
    resizable | yes/no | 窗口大小是否可调整
    screenX | pixel value | 窗口距屏幕左边界的像素长度
    screenY | pixel value | 窗口距屏幕上边界的像素长度
    scrollbars | yes/no | 窗口是否可有滚动栏
    titlebar | yes/no | 窗口题目栏是否可见
    toolbar | yes/no | 窗口工具栏是否可见
    Width | pixel value | 窗口的像素宽度
    z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

    =====================================================

    最基本的弹出窗口代码

    <SCRIPT LANGUAGE="javascript">  
    <!--  
    window.open ('dollare.html')  
    -->  
    </SCRIPT> 
    
    因为着是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间 <!---->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养 
    成这个好习惯啊。
    

    Window.open (‘dollare.html’) 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,

    前面应写明路径,绝对路径(http://www.dollare.com.cn/dollare.html)和相对路径(…/)均可。用单引号和双引号都可以,只是不要混用。

    这一段代码可以加入HTML的任意位置,<head></head>之间可以,<body></body>也可以,越前越早执行 ,尤其是页面代码长,又想使页面早点弹出就尽量往前放。  
    

    经过设置后的弹出窗口

    下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。
    我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。

    
    <SCRIPT LANGUAGE="javascript">  
    <!--  
    window.open ('dollare.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no,  
    
    menubar=no, scrollbars=no, resizable=no,location=no, status=no')  
    //写成一行  
    -->  
    </SCRIPT> 
    参数解释:  
    <SCRIPT LANGUAGE="javascript"> js脚本开始;  
    window.open 弹出新窗口的命令;  
    'page.html' 弹出窗口的文件名;  
    'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空'代替;  
    height=100 窗口高度;  
    width=400 窗口宽度;  
    top=0 窗口距离屏幕上方的象素值;  
    left=0 窗口距离屏幕左侧的象素值;  
    
    width=250,toolbar=no,scrollbars="+scroll+",menubar=no");  
    //写成一行  
    OpenWindow.document.write("<TITLE>dollare雄仔工作室</TITLE>")  
    OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")  
    OpenWindow.document.write("<h1>Hello!</h1>")  
    OpenWindow.document.write("New window opened!<br> is Good")  
    OpenWindow.document.write("</BODY>")  
    OpenWindow.document.write("</HTML>")  
    OpenWindow.document.close()}  
    </SCRIPT>  
    </head>  
    <body>  
    <a href="#" onclick="openwin()">打开一个窗口</a>  
    <input type="button" onclick="openwin()" value="打开窗口">  
    </body>  
    </html> 
    

    看看 OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用OpenWindow.document.close()结束啊。

    终极应用–弹出的窗口之Cookie控制

    回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?解决的办法,我们使用cookie来控制一下就可以了。

    首先,将如下代码加入主页面HTML<HEAD>区:  
    
    <script>  
    function openwin()  
    {window.open("page.html","","width=200,height=200")}  
    function get_cookie(Name)  
    {var search = Name + "="  
    var returnvalue = "";  
    if (document.cookie.length > 0) {  
    offset = document.cookie.indexOf(search)  
    if (offset != -1) {  
    offset += search.length  
    end = document.cookie.indexOf(";", offset);  
    if (end == -1)  
    end = document.cookie.length;  
    returnvalue=unescape(document.cookie.substring(offset,end))  
    }  
    }  
    return returnvalue;  
    }  
    function loadpopup(){  
    if (get_cookie('popped')=='){  
    openwin()  
    document.cookie="popped=yes"  
    }  
    }  
    </script> 
    
      然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!
      
    
    展开全文
  • windows窗口基本代码详细解析

    千次阅读 2012-10-30 15:55:05
    /*下列注释函数均在平台SDK文档中说明,并在不同的头文件中声明,其中绝大多数在WINUSER.H中声明。*/ #include ... // 窗口过程; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstan
    /*下列注释函数均在平台SDK文档中说明,并在不同的头文件中声明,其中绝大多数在WINUSER.H中声明。*/
    #include <windows.h>

    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; // 窗口过程;

    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)  //程序入口点;
    {
         static TCHAR szAppName[] = TEXT ("HelloWin") ;
         HWND         hwnd ;   //窗口句柄类HWND;
         MSG          msg ;   //P54  消息;
         WNDCLASS     wndclass ;  //P47  注册窗口类,生成对象;解释:窗口类定义了窗口的一般特征,因此可以使用同一窗口类创建许多不同的窗口。
         wndclass.style         = CS_HREDRAW | CS_VREDRAW ; 
    //1.。。见上:CS_HREDRAW 窗口的水平方向尺寸;CS_VREDRAW   窗口的垂直方向尺寸;这两个标示符确保了文本串既是在改变了窗口大小后仍位于窗口中央。
         wndclass.lpfnWndProc   = WndProc ;
    //2.。。见上:即此程序的第二个函数。其处理基于这个窗口类创建的所有窗口的全部信息。在c语言中像这样在语句中使用函数名时,实际引用提供的是指向函数的指针。
    //lpfn  “指向函数的长指针”
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
    //3和4.。。上面两个域用于在类结构和windows内部保存的窗口结构中预留一些额外空间;程序可以根据需要来使用预留的空间,此处没有使用,所以赋值为0;     cb   “count of bytes(字节数)”
         wndclass.hInstance     = hInstance ;
    //5.。。上面的一个域是程序的实例句柄(他也是WinMain的参数之一)

         wndclass.hIcon          = LoadIcon (NULL, IDI_APPLICATION) ;
    //6.。。见上:LoadIcon加载图标供程序使用.
    //第一个参数设为NULL是来获取预先定义(默认)的图标句柄;
    //若加载定制的图标(图标应该保存在磁盘.EXE程序文件中),这个参数应该设置为程序的实例句柄hInstance;
    //第二个参数标识图标,对预先定义的图标此参数是以IDI开始的标示符,标示符在WINUSER.H中定义;
    //LoadIcon函数返回该图标的句柄
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ; 
    //7.。。见上:LoadCursor加载鼠标指针供程序使用;(可以参考LoadIcon)
    //LoadCursor函数加载一个预先定义的鼠标光标(命名为IDC_ARROW),并返回光标的句柄。该句柄被赋给WNDCLASS结构的hCursor域。
    //当鼠标光标在基于这个类创建的窗口的客户区域上出现时,它变成一个小箭头。
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
    //8.。。GetStockObject获取一个图形对象,在这个例子中,是获取绘制窗口背景的刷子;
    //调用则返回一个刷子(此时为‘白色刷子的’)的句柄。
         wndclass.lpszMenuName  = NULL ;
    //9.。。上个域指定窗口类菜单。因此程序没有应用程序菜单,所以该字段被设置为NULL。
         wndclass.lpszClassName = szAppName ;
    //10.。。上句是给出一个类名。对于小程序类名可以和程序名相同,即存放在szAppName变量中的字符串“HelloWin”;
    //上述字符串是由ASCII字符组成还是由Unicode字符组成取决于是否定义了UNICODE标示符;


         if (!RegisterClass (&wndclass))   //RegisterClass  是为程序窗口注册窗口类;该函数只有一个参数,即指向WNDCLASS结构的指针。
         {
              MessageBox (NULL, TEXT ("This program requires Windows NT!"),
                          szAppName, MB_ICONERROR) ;  //MessageBox  是显示消息框;
              return 0 ;
         }


    //如下:CreateWindow  是根据窗口类创建一个窗口;返回被创建的窗口的句柄,该句柄存放在变量hwnd中。
         hwnd = CreateWindow (szAppName, // window class name  是程序注册的窗口类名称;这就是如何把我们正在创建的窗口与一个窗口相联结类的方式。 
                              TEXT ("The Hello Program"), // window caption(标题,说明)
                              WS_OVERLAPPEDWINDOW,  // window style 窗口风格(转到定义看看):标题栏,菜单框,缩小放大关闭图标及四周表示窗口大小的边框。
                                                                       //“| WS_VSCROLL | WS_HSCROLL” 加上这个 就能使用 垂直滚动(WS_VSCROLL) 和 水平滚动(WS_HSCROLL)
                                                                       //   WS ‘窗户风格’;   垂直 ‘vertical’;   水平  ‘horizontal’;
                              CW_USEDEFAULT,              // initial x position   下面四个CW_USEDEFAULT都表示是使用windows默认尺寸;
                              CW_USEDEFAULT,              // initial y position
                              CW_USEDEFAULT,              // initial x size
                              CW_USEDEFAULT,              // initial y size
                              NULL,                       // parent window handle  当创建一个“最高级”窗口,如应用程序窗口时,则“父窗口句柄”的参数设置为NULL。
                              NULL,                       // window menu handle          因窗口没有菜单则“窗口菜单句柄”设置为NULL;
                              hInstance,                  // program instance handle  “程序实例句柄”设置为实例句柄,它是作为WinMain的参数传递给这个程序的;
                              NULL) ;                     // creation parameters  “创建参数” 指针设置为NULL,可以用这个指针访问以后想要引用的程序中的数据;
    //ShowWindow  在屏幕上显示窗口;两个参数:一、窗口句柄;二、是作为参数传给WinMain的iCmdShow,它确定最初如何在屏幕上显示窗口。
    //第二个参数:1.如果窗口按常规显示,那么从WinMain接收并传递给ShowWindow的就是SW_SHOWNORMAL;
    //2.最大化,则为SW_SHOWMAXIMIZED;3.若只显示在任务栏上,则为SW_SHOWMINNOACTIVE。
         ShowWindow (hwnd, iCmdShow) ;
    //如果第二个参数是SW_SHOWNORMAL,则窗口的客户区域被窗口类中定义的背景刷子所覆盖。函数调用UpdateWindow,导致客户区域被绘制。
         UpdateWindow (hwnd) ;  //指示窗口刷新自身;它通过给下面的窗口过程(即 WndProc函数)发送一个WM_PAINT消息来做到这一点。


    //调用完UpdateWindow后窗口就出现在显示器上。程序现在必须读入用户键盘和鼠标输入的数据。windows为当前运行的每个windows程序维护一个“消息队列”
    //在发生输入事件后,windows将事件转化为一个“消息”,并将消息放入程序消息队列中。
    //程序通过执行一段称为“消息循环”的代码从消息队列中取出消息。如下:
         while (GetMessage (&msg, NULL, 0, 0))  //GetMessage  从消息队列中获取消息; msg  是前面定义的‘消息’类型,其结构体具体可参见MSG的定义;
         {                                                  //NULL,0,0 是表示程序接收它自己创建的所有窗口的所有消息。详情见 P55.
              TranslateMessage (&msg) ;  //TranslateMessage 将msg结构传给Windows, 转换某些键盘信息;(第六章将深入讨论)
              DispatchMessage (&msg) ;   //DispatchMessage  将消息发送给窗口过程;
         }
         return msg.wParam ;
    }


    // 上面的都是准备工作,实际的动作发生在窗口过程中。窗口过程确定了在窗口的客户区域中显示些什么,以及窗口如何响应用户输入。
    //窗口过程可以任意命名(此程序是WndProc),一个windows程序可以包含多个窗口过程,一个窗口过程总是与调用RegisterClass注册的特定窗口类相关联。
    //程序一般不直接调用窗口过程。窗口过程由windows本身直接调用。通过调用SendMessage函数,程序能够直接调用它自己的窗口过程。
    LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)//四个参数与Message的前四个域是相同的,参见MSG的定义和P56。
    {
         HDC         hdc ;
         PAINTSTRUCT ps ;
         RECT        rect ;
       
         switch (message)
         {
         case WM_CREATE:   //充当的是  WndProc函数的第二个参数
              PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ; 
                //如上:PlaySound  播放一个声音文件;第二个参数只有当声音文件是一种资源时才被使用。
              return 0 ;  //窗口过程在处理消息时,必须返回0.
            
         case WM_PAINT:  
              // InvalidateRect(hwnd,NULL,TRUE); 
    //如果在处理WM_PAINT消息时在更的矩形外绘图,可以在调BeginPaint前调用它;它使整个客户区变为无效,并擦出背景;
    //但是,如果改成FALSE,则不擦出背景,原有的东西将保留在原处;详见P71整页;

              hdc = BeginPaint (hwnd, &ps) ;
    //对WM_PAINT的处理总是从BeginPaint(开始窗口绘制函数)的调用开始 ;第二个参数是指向类型为PAINTSTRUCT的结构指针        
              GetClientRect (hwnd, &rect) ; 
    //GetClientRect 获取窗口客户区的尺寸;第二个参数是指针,指向RECT类型的rectangle结构。
    //rectangle结构有4个LONG域,分别为left,top,right,buttom(底部)。
    //GetClientRect将这4个域设置为窗口客户区域的尺寸。left和top域通常设置为0,right和buttom域设置为客户区域的宽度和高度(像素点数);
              
              DrawText (hdc, TEXT ("Hello, Windows 7!"), -1, &rect,
                        DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
    //DrawText  显示文本串(即输出为文本);        
    //五个参数:1、是从BeginPaint返回的设备描述表句柄;2、是要输出的文本;3、是-1,指示文本串是以字节0终结的;
    /5、是一系列的位标识,均在WINUSER.H中定义;标志指示文本须显示在一行上,水平方向和垂直方向都位于第4个参数指定的矩形区域,因此输出文本显示在客户区域中央;
              EndPaint (hwnd, &ps) ;  //EndPaint  结束窗口绘制;第二个参数是指向类型为PAINTSTRUCT的结构指针(同上:BeginPaint函数)。
              return 0 ;
            
         case WM_DESTROY:
              PostQuitMessage (0) ;  //PostQuitMessage  在消息队列中插入一条“退出”消息;
              return 0 ;
         }
         return DefWindowProc (hwnd, message, wParam, lParam) ;  //DefWindowProc  执行默认的消息处理(即窗口过程不予处理的消息被传给它);
    }
    展开全文
  • c 几个简单的窗口操作代码

    千次阅读 2015-05-22 22:12:05
    (本人运行过,均可运行) ...第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄, 这个函数的定义是这样的 HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR

    (本人运行过,均可运行)

    http://blog.163.com/wang_1980_ww/blog/static/1111410520111119111543930/

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄,

    这个函数的定义是这样的 HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName);第一个参数填窗口的类名,第二个填窗口的标题名,其实是不需要同时填两个参数的,也就是说,你只要知道窗口的类名或窗口的标题就可以了,没有的那个就用NULL代替。比如现在有一个窗口名为"无标题.txt - 记事本"的记事本程序。那么我就可以用上面的函数获得这个窗口的句柄,那获得了这个窗口的句柄我可以干什么呢?作用可大了,因为很多操作窗口的函数,都需要窗口句柄作参数,如移动、改变窗口大小的MoveWindow函数,在这里举个例子,大家就更能体会到这个FindWindow的用法、用处。

    FindWindow例子:已知一个窗口名称,写一个程序关闭该窗口,假设当前电脑正有一个窗口名为"无标题.txt - 记事本"的记事本程序运行

    #include<windows.h>//API函数的头文件
    int main()
    {
     HWND wnd;//定义一个窗口句柄变量,用以存储找到的窗口句柄
     wnd=FindWindow(NULL,"无标题.txt - 记事本");//获得窗口名为"无标题.txt - 记事本"的窗口句柄

     SendMessage(wnd,WM_CLOSE,0,0);//调用SendMessage函数,发送一个WM_CLOSE(关闭)消息给wnd窗口句柄。

    return 0;
    }

    如果要根据窗口类名来获得窗口句柄话,只要给函数的第一个参数填类名,第二个参数窗口名填NULL,即可,用Spy++可查看窗口类名。

    第二个:SendMessage根据窗口句柄发送一个消息给窗口

    函数定义:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);

    第一个参数是窗口句柄,第二参数个是消息类型,下面的消息表列举了所有消息,第三,四个参数是消息附带信息,解释依赖于消息类型,比如一个字符消息(WM_CHAR),那么第三个参数就储存有一个字符的ASCII码。

    消息机制大家都应该知道吧,Windows是基于消息的系统,鼠标移动键盘按键都会产生消息。

    接下来举一个例子,发送一个WM_CHAR消息给窗口,也就是模仿键盘按键,接收消息的窗口依旧以"无标题.txt - 记事本"为例:

    SendMessage例子:模仿键盘按键

    #include<windows.h>

    int main()

    {

     HWND wnd;
     wnd=FindWindow(NULL,"无标题.txt - 记事本");

    while(1)

    {

    SendMessage(wnd,WM_CHAR,WPARAM('a'),0);

    Sleep(300);

    }

    return 0;

    }

    呵呵上面的例子是不是没用,这是为什么呢,哪里出错了吗?错倒是没有错,只是窗口句柄有问题,消息发送给了主窗口。接收消息的窗口不对。记事本窗口界面有些有什么东西呢?菜单,编辑框, 状态栏等控件,控件也是窗口,既然是窗口,那当然它们也有窗口句柄,而在记事本里是在哪里打字的?编辑框控件里打字的嘛!所以消息应该发送编辑框控件,那如何获得记事本里编辑框控件的窗口句柄呢?用FindWindow吗?不知道编辑框窗口标题名,类名也不知道,当然也有其它方法获取编辑框窗口标题名和窗口类名,如Spy++。关于如何获得编辑框句柄,将在以后的函数中会有介绍,这里我们就用WindowFromPoint这个函数来获取,这个函数获取窗口句柄的方法比较笨,(相对于我这个例子来说),这个函数是根据什么来获取窗口句柄的呢?根据屏幕坐标点,如屏幕坐标点20,20,当前是哪个窗口占有,就返回哪个窗口的句柄。有了这个函数,我们还需要一个函数GetCursorPos获取鼠标当前位置(针对于屏幕);

    可行的例子:模仿键盘按键:

    #include<windows.h>

    int main()
    {
      POINT curpos;//一个可储存坐标点的结构体变量,x横坐标,y,纵坐标,如curpos.x   curpos.y

     while(1)
     {
     GetCursorPos(&curpos);//获取当前鼠标的位置,位置将储存在curpos里。
     HWND hWnd = WindowFromPoint(curpos);//根据curpos所指的坐标点获取窗口句柄
     SendMessage(hWnd,WM_CHAR,WPARAM('g'),0);//发送一个字符(按键)消息g给当前鼠标所指向的窗口句柄
     Sleep(300);//睡眠三百毫秒,相当于等待三分之一秒
     }

     

    }

    这个程序一运行后,只要把鼠标指向要输入字符的窗口句柄,那么就相当于键盘每三分之一秒按了一个g键,试试吧!

    如果这样觉得模仿键盘按键太麻烦的话,那么就用keybd_event这个函数,这个专门用于模仿键盘按键的,关于怎么用,自己百度一搜,就知道了。既然SendMessage能模仿键盘按键的话,那也能模仿鼠标左击,右击。而此时SendMessage函数第三,四个参数的解释就是储存有鼠标左击,右击时的位置。如模仿鼠标右击,想一想,一次鼠标右击有哪几步,分别是鼠标右键按下,鼠标右键松开,如果你按下鼠标右键不松开,那它是不是鼠标右击,不是的,直到你松开鼠标右键,才能算是一次完整的鼠标右击.鼠标右键按下的消息类型是“WM_RBUTTONDOWN”,右键松开的消息是“WM_RBUTTONUP”,那么一次完整的鼠标右击应该是:
    SendMessage(wnd,WM_RBUTTONDOWN,0,0);//鼠标右键按下,第三,四个参数说明了鼠标按下时的位置
    Sleep(100);//间隔100毫秒
    SendMessage(wnd,WM_RBUTTONUP,0,0);//鼠标右键松开

    同样,也有一个专门模仿鼠标动作的函数,mouse_event这个函数,可以模仿鼠标的移动,单击,双击等。以后会有专门介绍。

    第三个:GetCursorPos获取鼠标当前位置(屏幕)

    这个函数在SendMessage函数有介绍,这里仅举一个例子,在界面里不停的输出鼠标当前位置。

    #include<windows.h>

    #include<stdio.h>

    int main()

    {
    POINT curpos;

    while(1)

    {

     GetCursorPos(&curpos);

    printf("x:%d,y:%d",curpos.x,curpos.y);

    Sleep(300);

    printf("\n");

    }

    }

    第四个:WindowFromPoint根据坐标点获得对应的窗口句柄

    在SendMessage有解释,这里仅举一个例子,鼠标指向哪个窗口,就关闭哪个窗口。

    #include<windows.h>

    int main()

    {

    Sleep(2500);//等待一会儿,用于把鼠标移到其它窗口上去,避免指向本身进程的窗口,关掉自己的窗口。

    POINT curpos;

    while(1)

    {

    GetCursorPos(&curpos);

    HWND wnd=WindowFromPoint(curpos);

    SendMessage(wnd,WM_CLOSE,0,0);

    Sleep(300);

    }

    }

    第五个MoveWindow根据窗口句柄移动窗口,改变窗口大小
    函数定义:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint );
    hWnd是要改变大小的窗口的句柄,x,y相对于屏幕的坐标,窗口左上角的位置与之相对应,nWidth和nHeight是窗口新的宽高,bRepaint指定窗口是否重画。
    这里依旧以"无标题.txt - 记事本"为例子,改变这个窗口大小,并把窗口移到左上角去。
    #include<windows.h>
    int main()
    {
    HWND wnd;
    wnd=FindWindow(NULL,"无标题.txt - 记事本");
    MoveWindow(wnd,0,0,220,120,NULL);
     return 0;
    }
    第六个ShowWindow设置窗口显示状态,如隐藏,最大化,最小化

    函数定义BOOL ShowWinow(HWND hWnd,int nCmdShow);
        SW_HIDE:隐藏窗口并激活其他窗口。第一个参数hWnd指明了窗口句柄,第二个参数指明了窗口的状态,现在给出第二个参数常用取值范围:
      SW_MAXIMIZE:最大化指定的窗口。
      SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。
      SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。
    SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。
    ShowWindow例子:程序运行后,在桌面上隐藏一个指定的窗口,并在4秒后再将其显示
    #include<windows.h>
    int main()
    {
     HWND wnd;
     wnd=FindWindow(NULL,"无标题.txt - 记事本");
     ShowWindow(wnd,SW_HIDE);
     Sleep(5000);
     ShowWindow(wnd,SW_SHOW);
     return 0;
    }

    第七个SetCursorPos设置鼠标的位置、把鼠标移动到指定的位置

    函数定义:BOOL SetCursorPos(int x,int y);

    这个函数的两个参数我想大家应该知道是什么意思吧,屏幕的坐标点。

    直接看例子:

    #include<windows.h>
    int main()
    {
    int sec=0;
    while(sec<200)
    {
     SetCursorPos(rand()%1024,rand()%768);//随机设置鼠标的位置
     Sleep(20);
     sec++;
    }
    return 0;
     }

    第八个CopyFile复制一个文件

    如何复制一个文件,比如,我要把E盘的abb.txt的文本文件复制到d盘的zhengyong.txt,则调用语句

    CopyFile("e:\\abb.txt","d:\\zhengyong.txt",FALSE);即可。
    第三个参数有以下说明:
    如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件会被覆盖掉。

    第九个DeleteFile删除一个文件

    如何删除一个文件,语句:DeleteFile("e\\abb.txt");既是删除
    如果目标为隐藏或只读,则无用。

    第十个CreateDirectory创建一个文件夹(目录)

    假如E盘下什么文件也没有
    CreateDirectory("e:\\aaa\\bbb",NULL);这样是错的,不能同时建两个文件,除非E盘下已经有了个aaa文件夹了。
    这样是对的CreateDirectory("e:\\aaa",NULL);
    展开全文
  • 如何在关闭窗口时刷新父窗口(原来打开此窗口...但是正因为这样,我们可以让刷新的动作关闭窗口时进行,当然所有的动作是在父窗口中进行的。晕,不知道说明白了没有。还是看一下例子吧public partial class Cus...

    如何在关闭窗口时刷新父窗口(原来打开此窗口的窗口,不一定是mdi窗口), 这种事情在b/s里很简单,但在winform里却不那么好办。因为你不能关闭第一个窗口时再打开另一个窗口,如果这样的话新窗口就一起被关闭了。但是正因为这样,我们可以让刷新的动作在关闭子窗口时进行,当然所有的动作是在父窗口中进行的。晕,不知道说明白了没有。
    还是看一下例子吧
    public partial class Customer : Form
        {
            public Customer()
            {
                InitializeComponent();
            }

            private void customerBindingNavigatorSaveItem_Click(object sender, EventArgs e)
            {
                this.Validate();
                this.customerBindingSource.EndEdit();
                this.customerTableAdapter.Update(this.oadepotDataSet.Customer);

            }

            private void Customer_Load(object sender, EventArgs e)
            {
                // TODO: 这行代码将数据加载到表“oadepotDataSet.Customer”中。您可以根据需要移动或移除它。
                this.customerTableAdapter.Fill(this.oadepotDataSet.Customer);  //请注意这里

            }

            private void SearchBtn_Click(object sender, EventArgs e)
            {
                DataTable dt=customerTableAdapter.GetDataByKey("%"+QueryTextBox.ToString()+"%");
                customerDataGridView.DataSource = dt;
            }

            private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
            {
                //打开新窗口
                Form addForm = new AddCustomer();
                addForm.Owner = this;
                addForm.ShowDialog();
                this.customerTableAdapter.Fill(this.oadepotDataSet.Customer); //关键就在这里
                            
            }

    请注意上面的两行红字,问题就在这里。不关子窗口什么事,所有的动作都在父窗口中完成。

    转载于:https://www.cnblogs.com/cnote/p/9058575.html

    展开全文
  • 关闭IE浏览器窗口时触发的动作js

    千次阅读 2016-04-28 14:11:58
    window.onload = window....//window.onresize 当改变窗口大小的时候触发这个事件 //$("rs_layout_bottom").show(); //sysHi(); //坐席系统,计算高度 //var MeHi = $(window).height(); //$('.talkHi').css('hei
  • 它的使用有两种,一个是帧动作,一个是对象动作,帧动作就是在帧上加代码,对象动作就是在被选中的对象上加上代码(说的菜了点),怎么加代码呢,很简单,帧动作就是选中那一帧然后“窗口”——>“动作”,...
  • 案例:通过点击一个超链接打开一个新窗口,在新窗口处理完相关动作后再关闭窗口,并刷新父窗口及聚焦到父窗口,怎么实现? 解决方案: 父窗口代码如下: function openAction(){ window.open('${...
  • JS关闭窗口时触发事件方法

    千次阅读 2020-10-28 09:24:40
    JS监听关闭浏览器事件 1、Onunload与Onbeforeunload区别: ①Onunload,onbeforeunload都是在刷新或关闭时调用,可以在②Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时...
  • 主要介绍了JavaFX 监听窗口关闭事件实例详解的相关资料,需要的朋友可以参考下
  • JAVASCRIPT弹出窗口DIV层效果代码

    千次阅读 2013-09-25 10:20:33
    在本教程中,我将用最通俗的语言和最简洁的代码给大家演示如何创建一个JavaScript弹出DIV窗口层的效果。   创建一个弹出DIV窗口可能是现在网站/网页制作中最常碰到的问题之一。传统的JavaScript弹窗已经不...
  • 好多初学者在Qt中,常常遇到关闭窗口后,如何才能将上一级的窗口重新显示出来。众所周知的是,我们使用QDialog的exec函数可以实现上面的问题,但我们除了QDialog就不能在使用QWidget的时候也如此调用??事实上是...
  • 创建一个弹出DIV...于是,一个良好用户体验的网站需要一种更合理的解决方案——使用很少的HTML代码,很少的CSS代码和几行的JavaScript代码来模拟浏览器默认的弹出窗口(即替换掉默认的Alert()界面和功能)。 <br
  • Qt--纯代码创建简易菜单窗口(附详细讲解)

    千次阅读 多人点赞 2019-08-14 21:40:17
    先挂一张效果图: 添加的部件: 对话框: 模态对话框 非模态对话框 ...浮动窗口 ...模态对话框:模态对话框... 非模态对话框:模态对话框打开时,可以操作其他窗口; 问题对话框:点击后弹出的对话框,样式为: ...
  • java代码--登录窗口

    千次阅读 2015-08-12 11:39:05
    //设置关闭方式 Container container = getContentPane(); //添加一个容器 container.setLayout(null); //设置布局管理器为null JLabel n = new JLabel("用户名:"); //生成 ...
  • FLASH动作脚本代码集锦

    千次阅读 2006-10-21 09:42:00
    1 、简单 loading 代码:方法 1 、使用载入字节数判断 b=getBytesTotal();// 获取总的字节数a=getBytesLoaded();// 已经下载的字节数onEnterFrame=function(){// 进入帧时 , 进行判断if (a == b) {// 如果载入的字节...
  • 原文出处: ... 在Selenium 2 (WebDriver)中,测试弹出窗口涉及切换WebDriver到弹出窗口,运行弹出窗口内的动作,然后切换回主窗口。 示例代码如下(C#): // 1 -
  • 你的第一个Windows程序——关闭窗口

    千次阅读 2013-09-07 00:07:20
    当用户关闭一个窗口,该动作触发一个窗口消息序列。 用户可以点击“关闭”按钮或通过使用键盘快捷键(如 ALT+F4),这些动作引起窗口收到WM_CLOSE消息,WM_OLOSE消息让你有机会在关闭窗口前提示用户。如果你真...
  • window.onload事件 设置页面加载时执行的动作,即进入页面的时候执行的动作。 window.onunload 已经从服务器上读到了需要加载的新的页面...onunload和onbeforeunload都是在页面刷新和关闭前的动作,但是onbeforeunl..
  • JavaScript弹出窗口DIV层效果代码

    千次阅读 2012-07-26 14:40:42
     该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档。  属性  alinkColor 活动链接的颜色(ALINK)  anchor 一个HTMI锚点,使用#lt;A NAME=#gt;标记创建(该属性本身也是一个对象)  ...
  • 捕捉窗口右上角关闭按钮关闭事件

    千次阅读 2011-09-16 22:27:39
    实现原理: ...通过获取事件源位置,判断是否为右上角关闭按钮触发,从而区分关闭窗口和页面刷新动作 代码如下: window.onbeforeunload = function(){ var n = window.event.screenX - window.screen
  • java swing 窗口界面关闭事件响应

    千次阅读 2015-10-13 11:14:07
    在swing的窗口里面,即jframe里面,进行关闭窗口动作,如果事先不在代码中设置好,则默认是把窗口设成setVisable(false),程序还是依然运行着,继续占用内存,所以如果不小心,越调试则会发现内存占用率越高,机子...
  • 在swing的窗口里面,即jframe里面,进行关闭窗口动作,如果事先不在代码中设置好,则默认是把窗口设成setVisable(false),程序还是依然运行着,继续占用内存,所以如果不小心,越调试则会发现内存占用率越高,机子...
  • 类似Ajax弹出窗口的DIV层效果代码

    千次阅读 2010-03-03 15:48:00
    创建一个弹出DIV窗口可能是现在网站/网页制作中最常碰到的问题之一。传统的JavaScript弹窗已经不适合目前网站的设计理念了,理由有二:首 先,不友好——生硬的弹出对话框且伴随着“哐”的一声对用户体验是个很大的...
  • confirm 消息对话框通常用于允许用户做选择的动作,如:“你对吗?”等。弹出对话框(包括一个确定按钮和一个取消按钮)。 语法: confirm(str); 参数说明: str:在消息对话框中要显示的文本 返回值: ...
  • shell窗口关闭事件

    千次阅读 2012-06-09 13:19:09
    首先按照如下方式写,在弹出的窗口中不管点击什么都是关闭窗口 shell = new Shell(display);  shell.addShellListener(new ShellAdapter() {  @Override  public void shellClosed(ShellEvent e) {  ...
  • 不询问关闭窗口

    千次阅读 2007-03-21 12:53:00
    window.opener=null;window.close();... 下面是网上搜索来的内容: 网页在打开一定时间内自动关闭 function closewin(){ setTimeout("self.close()",5000) } //--> 关键在这里setTimeout("self.close()",

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,594
精华内容 23,837
关键字:

关闭窗口的动作代码