惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
月光博客
月光博客
V
Visual Studio Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
C
Check Point Blog
腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
SecWiki News
SecWiki News
博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
F
Full Disclosure
The Cloudflare Blog
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
AI
AI
N
News and Events Feed by Topic
T
Tor Project blog
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog

博客园 - jasonM

真是郁闷,团队中居然出了这样的骗子!! C++反汇编揭秘1 – 一个简单C++程序反汇编解析 函数调用堆栈变化分析 - jasonM - 博客园 为什么要下断bpSend,原理分析。 做挂第一步:如何找基址(以热血传奇为例) 一步步学外挂(二).CALL的原理。 - jasonM - 博客园 开发企业直销软件需求分析 开发旺旺群发软件,难点及重要技术点分析(一) 正则表达式系列文章整理 群发软件开发原理分析 通俗解释socket(并附上注释Socket源代码) CMainFrame::PreCreateWindow这个函数执行了两次 .net调用vc++写的dll 一步步学破解-sdk用实例讲解GDI映射机制 一步步学破解-sdk用实例讲解GDI(含各个消息的调用时机) 一步步学破解-sdk进程间传递信息 一步步学破解-windows消息循环原理实例总结(二) 一步步学破解-函数调用堆栈变化分析 (一) 老王最新壳试脱时遇到的问题,详细表述如下
一步步学破解-在已有的主窗口上创建按钮(三)
jasonM · 2009-04-24 · via 博客园 - jasonM
 

因为按钮是子窗口,是系统已定义好的,所以不需要使用注册窗口类注册,也不需要写消息处理,直接在窗口的WM_CREATE中创建就可以了,在上一讲的窗口过程中加入如下代码:

case WM_CREATE:

{

         CreateWindow(TEXT("BUTTON"),TEXT("按钮(&A)"),WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON,10,10,65,22,hWnd,(HMENU)1000,hInst,NULL);

                    return 0;

}

这样就实现了在sdk中加入控件的功能,非常简单吧!!

同样的道理,如果我们想增加一个文本框控件,仅需要加入:

///下面一个是编辑框按钮,你可以在其中输入文字,具有一个简单的写字板的

       ///功能,可以复制、粘贴、剪切等操作

       ///////////////////////////////////////////////////////////////////

       CreateWindow(

       "edit",    //在这里设置此按钮为edit类型,表示将控件设定为编辑框控件

       "试试",      //字符型数组在前面已经定义,在这里显示它的内容

      WS_CHILD | WS_VISIBLE,

       10,

       160,

       568,

       130,

       hWnd,

       (HMENU)1001,

       hInst,

       NULL);

备注:设定按钮的类型为button,其它类型有静态控件static,
            
滚动条控件scrollbar,编辑框控件edit,列表框控件listbox