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

推荐订阅源

Engineering at Meta
Engineering at Meta
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
腾讯CDC
S
Securelist
Know Your Adversary
Know Your Adversary
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 【当耐特】
V2EX - 技术
V2EX - 技术
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
Cisco Talos Blog
Cisco Talos Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
W
WeLiveSecurity
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
博客园 - Franky
S
Security Affairs
博客园 - 司徒正美
V
V2EX
K
Kaspersky official blog
T
Threatpost
NISL@THU
NISL@THU
博客园 - 叶小钗
Help Net Security
Help Net Security
PCI Perspectives
PCI Perspectives
IT之家
IT之家
小众软件
小众软件
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Last Week in AI
Last Week in AI
Jina AI
Jina AI
爱范儿
爱范儿
罗磊的独立博客
N
News and Events Feed by Topic
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
L
LINUX DO - 热门话题
Google Online Security Blog
Google Online Security Blog
雷峰网
雷峰网
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

博客园 - 云水浮萍

结构体和类中属性定义需要static地方 十万个为什么收集 AnsiString类型定义的时候可以直接指定代码页,比如950繁体字,936日文 CopyMemory Move使用笔记 System.Length 函数 Delphi Helper Record Class 向量定义笔记 关于日期与字符串转换时出错的分隔符,小记一下容易忘记 类型与泛型标记 http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Data_Types Delphi中GUID相等检查中经典指针应用 test是否被执行? 每次看到某个数据结构的时候,有两个指针,一个起始,一个结束,一直没想明白为何是起始与结束,不是起始加数量,是怎么操作的? 给自己一个书单 pureMVC学习之一 泛型与无聊 队列与DelphiXe新语法 猫儿山之行计划书 一个错误,一个教训,关于堆栈平衡 - 云水浮萍 - 博客园
群里人问的消息切换分页问题,我就标记一下
云水浮萍 · 2015-04-16 · via 博客园 - 云水浮萍
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
 
namespace Text
{
    public class Program
    {
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        static extern UInt32 SendMessage(IntPtr hWnd, UInt32 Msg, UInt32 wParam, UInt32 lParam);
 
        public const UInt32 TCM_FIRST = 0x1300;
        public const UInt32 TCM_GETIMAGELIST = (TCM_FIRST + 2);
        public const UInt32 TCM_SETIMAGELIST = (TCM_FIRST + 3);
        public const UInt32 TCM_GETITEMCOUNT = (TCM_FIRST + 4);
        public const UInt32 TCM_GETITEMA = (TCM_FIRST + 5);
        public const UInt32 TCM_GETITEMW = (TCM_FIRST + 60);
        public const UInt32 TCM_SETITEMA = (TCM_FIRST + 6);
        public const UInt32 TCM_SETITEMW = (TCM_FIRST + 61);
        public const UInt32 TCM_INSERTITEMA = (TCM_FIRST + 7);
        public const UInt32 TCM_INSERTITEMW = (TCM_FIRST + 62);
        public const UInt32 TCM_DELETEITEM = (TCM_FIRST + 8);
        public const UInt32 TCM_DELETEALLITEMS = (TCM_FIRST + 9);
        public const UInt32 TCM_GETITEMRECT = (TCM_FIRST + 10);
        public const UInt32 TCM_GETCURSEL = (TCM_FIRST + 11);
        public const UInt32 TCM_SETCURSEL = (TCM_FIRST + 12);
        public const UInt32 TCM_HITTEST = (TCM_FIRST + 13);
        public const UInt32 TCM_SETITEMEXTRA = (TCM_FIRST + 14);
        public const UInt32 TCM_ADJUSTRECT = (TCM_FIRST + 40);
        public const UInt32 TCM_SETITEMSIZE = (TCM_FIRST + 41);
        public const UInt32 TCM_REMOVEIMAGE = (TCM_FIRST + 42);
        public const UInt32 TCM_SETPADDING = (TCM_FIRST + 43);
        public const UInt32 TCM_GETROWCOUNT = (TCM_FIRST + 44);
        public const UInt32 TCM_GETCURFOCUS = (TCM_FIRST + 47);
        public const UInt32 TCM_SETCURFOCUS = (TCM_FIRST + 48);
        public const UInt32 TCM_SETMINTABWIDTH = (TCM_FIRST + 49);
        public const UInt32 TCM_DESELECTALL = (TCM_FIRST + 50);
        public const UInt32 TCM_HIGHLIGHTITEM = (TCM_FIRST + 51);
        public const UInt32 TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52); // optional wParam == mask
        public const UInt32 TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53);
 
        static void Main(string[] args)
        {
            IntPtr h = new IntPtr(句柄自己取);
            UInt32 count = SendMessage(h, TCM_GETITEMCOUNT, 0, 0);
            Console.WriteLine("共有 " + count + " 个分页");
 
            UInt32 index = SendMessage(h, TCM_GETCURSEL, 0, 0);
            Console.WriteLine("当前选中第 " + (index + 1) + " 页");
 
            if (index == 0)
            {
                index = count - 1;
            }
            else
            {
                index = 0;
            }
 
            SendMessage(h, TCM_SETCURSEL, index, 0);
            Console.WriteLine("已跳转到 " + (index + 1) + " 页");
 
            Console.ReadKey();
        }
    }
}

 如题,获取到tabcontrol控件句柄后使用
SendMessage(hTab,TCM_SETCURFOCUS,1,0);//这句话是相当重要的,不然的话tab子窗口不会跟随切换。就这一句话,搞了很久。
SendMessage(hTab,TCM_SETCURSEL,2,0);//想切换的的tab控件的第二个索引项
验证无效,烦请各位大大帮看下问题出在哪里?