. 为什么小弟我TAB 控件 用TabCtrol_GetCurSel得到的总是0啊
在线等.. 为什么我TAB 控件 用TabCtrol_GetCurSel得到的总是0啊!
研究了1天tab控件的使用,可以显示出来,两个子对话框属性也是 child。标签页切换的时候就是 总是停留在第一个标签,用TabCtrol_GetCurSel获取总是得到0,我设了三个标签啊。麻烦大神帮看看代码哈!
我想要就是 标签切换的时候,相应的窗口可以显示出来..现在就只能是初始化的时候,显示一下,然后切换标签的时候总是显示在tab1..十分不解啊..明明响应了NOTIFY啊。明明切换了标签啊!在线等..
研究了1天tab控件的使用,可以显示出来,两个子对话框属性也是 child。标签页切换的时候就是 总是停留在第一个标签,用TabCtrol_GetCurSel获取总是得到0,我设了三个标签啊。麻烦大神帮看看代码哈!
我想要就是 标签切换的时候,相应的窗口可以显示出来..现在就只能是初始化的时候,显示一下,然后切换标签的时候总是显示在tab1..十分不解啊..明明响应了NOTIFY啊。明明切换了标签啊!在线等..
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
#include "commctrl.h"
HINSTANCE hinstance;
HWND hDlg_intab[2];
HWND htabctrl;
INT iCurrentPage=0;
RECT rect;
typedef int(WINAPI *DIALOGPROC)(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
DIALOGPROC tab1_dlg_proc,tab2_dlg_proc;
DIALOGPROC DlgProc[2]={tab1_dlg_proc,tab2_dlg_proc};
BOOL WINAPI Main_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
hinstance=GetModuleHandle(NULL);
switch(uMsg)
{
HANDLE_MSG(hwnd, WM_INITDIALOG, Main_OnInitDialog);
// HANDLE_MSG(hwnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hwnd,WM_CLOSE, Main_OnClose);
// HANDLE_MSG(hwnd,WM_SIZE,Main_OnSize);
case WM_NOTIFY:
{
if((INT)wParam==IDC_TAB)
{
if(((LPNMHDR)lParam)->code==TCN_SELCHANGE)
{
switch(TabCtrl_GetCurSel(htabctrl))
{
case 0:
{
ShowWindow(hDlg_intab[1],FALSE);
ShowWindow(hDlg_intab[0],TRUE);
MessageBox(hwnd,TEXT("当前在tab1"),TEXT(""),MB_OK);
break;
}
case 1:
{
ShowWindow(hDlg_intab[1],TRUE);
ShowWindow(hDlg_intab[0],FALSE);
MessageBox(hwnd,TEXT("当前tab2"),TEXT(""),MB_OK);
break;
}
}
}
}
break;
}
}
return FALSE;
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
//////////////////////////////////////////////////////////// 显示tab标签
HWND htabctrl=GetDlgItem(hwnd,IDC_TAB);
TCITEM tie;
LPSTR tabname[3]={"tab1","tab2","tab3"};
tie.mask=TCIF_TEXT;
for(INT i=0;i<3;i++)
{
tie.pszText=tabname[i];
TabCtrl_InsertItem(htabctrl,i,&tie);
}
//////////////////////////////////////////////////////////////
GetClientRect(htabctrl,&rect);
for(i=0;i<2;i++)
{
hDlg_intab[i]=CreateDialog(hinstance,MAKEINTRESOURCE(IDD_DIALOG1+i),htabctrl,DlgProc[i]);