• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
wnarutou
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

2012年10月21日

static与extern
摘要: 在文件1中用extern定义一个变量,标明这个变量可以被其他文件应用,并且其他文件不需要使用#include "文件1";来包含文件1直接通过extern声明一下那个变量即可使用。extern的作用范围为整个程序,而生命周期为直到程序结束。static的作用范围只在定义它的范围内,而生命周期和extern一样。static和extern是两种存储类别,其他的存储类别还有auto和register,auto为默认的存储类别。因为作用范围不一样,所以不能同时使用extern和static修饰一个变量,否则就有二义性了。 阅读全文
posted @ 2012-10-21 23:33 wnarutou 阅读(174) 评论(0) 推荐(0)
 
在窗口客户区移动窗口
摘要: 如果像通过窗口的客户区移动鼠标,而不只是在标题栏的话。那么我们可以依照这种思路来实现:处理客户区鼠标左键消息WM_LBUTTONDOWN,在这里面记录鼠标的位置,然后捕获WM_MOUSEMOVE消息,在它里面处理鼠标的位移量,并通过MoveWindow或SetWindowPos来移动窗口。上面的处理方式效果还是不错的,就是比较麻烦,其实我们可以在鼠标左键客户区的时候发送一条WM_NCLBUTTONDOWN给窗口,这条消息的wParam为HTCAPTION表示击中标题栏,这样就会让窗口以为你现在的操作是左键击中标题栏,就像你真正在标题栏上点击了左键一般。如此系统自然而然为你提供了移动窗口的服务了 阅读全文
posted @ 2012-10-21 23:02 wnarutou 阅读(407) 评论(0) 推荐(0)
 
使用分层窗口及透明png图片实现一个异形窗口
摘要: 搞Windows程序的人尽皆知分层窗口能够实现很多不错的效果,之前看过一些异形窗口的实现,所以就手痒也想自己搞一个玩一玩。自己动手实现过程才发现还是有不少问题的。基本思路是:1.将窗口扩展属性设置为分层属性WS_EX_LAYERED。2.选一张透明的png图片,并将其加载进来。3.创建与窗口兼容的内存设备上下文,以及兼容位图,将兼容位图选入兼容设备上下文。4.将png图片绘制到内存设备上下文中。5.设置BLENDFUNCTION结构,调用UpdateLayeredWindow。第一步设置窗口的分层属性比较简单:windowStyle = GetWindowLong(hWnd, GWL_EXST 阅读全文
posted @ 2012-10-21 21:43 wnarutou 阅读(2799) 评论(2) 推荐(1)
 
关于窗口属性的小应用
摘要: 1.基本上所有程序打开主界面都会在任务栏出现一个代表本窗口界面的图标,但是有一些却没有出现在任务栏,那么要怎么实现呢?这个只要在创建窗口的时候调用CreateWindowEx函数并使用WS_EX_TOOLWINDOW扩展属性即可。2.在xp系统下,窗口右边及下边是没有阴影效果,这样表现立体感就不强。可以通过这样来实现窗口阴影效果:::SetClassLong(*this, GCL_STYLE, ::GetClassLong(*this, GCL_STYLE) | CS_DROPSHADOW);3.如果你想要固定窗口的尺寸,不想让用户双击最大化以及禁用最大化图标,那么你可以:cs.style&a 阅读全文
posted @ 2012-10-21 01:32 wnarutou 阅读(425) 评论(0) 推荐(0)
 
关于类大小的小试验
摘要: 首先:#include <iostream>using namespace std;class A{public: void foo(){}};class B:public A{public: void foo(){}};class C:public A{public: void foo(){}};class D: public B,public C{public: void foo(){}};int main(int argc, char *argv[]){ A a; B b; C c; D d; cout<<"A 的大小为: "<<s 阅读全文
posted @ 2012-10-21 00:31 wnarutou 阅读(157) 评论(0) 推荐(0)
 
没有被实例化的类 中的 非static成员函数竟然也可以被调用。。。前提是该成员函数没有用到成员变量
摘要: 1 #include <string> 2 #include <iostream> 3 using namespace std; 4 #include "stdio.h" 5 6 class A 7 { 8 public: 9 string a;10 void f1(){printf("Hello World\n");}11 void f2(){a = "Hello World"; printf("%s",a.c_str());}12 virtual void f3(){printf(&qu 阅读全文
posted @ 2012-10-21 00:08 wnarutou 阅读(338) 评论(0) 推荐(0)
 
2013搜狗校园招聘笔试题
摘要: 研习了Linux公社发布的2013搜狗校园招聘笔试题,还是有些收获的。//第一题:以下程序的输出是___________________class Base{public: Base(int j):i(j){} virtual ~Base(){} void func1(){i *= 10; func2();} int getValue(){return i;}protected: virtual void func2(){i++;}protected: int i;};class Child:public Base{public: Child(int j):Base(j){} void fun 阅读全文
posted @ 2012-10-21 00:08 wnarutou 阅读(271) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3