将控件添加到C ++ Win32中的TabControl中的特定选项卡页

蓝花

我想在tabcontrol的标签页中添加一些控件,但是似乎它将被添加到所有页面,并且默认情况下tabcontrol中没有标签页。

我在下面阅读了这些链接,但是它们并没有帮助我,在某些地方,使我感到困惑。

如何将控件添加到Tab控件

http://www.cplusplus.com/forum/windows/37161/

https://msdn.microsoft.com/zh-CN/library/bb760551.aspx

https://msdn.microsoft.com/zh-CN/library/hh298366.aspx

https://msdn.microsoft.com/zh-CN/library/ms645398.aspx

这是我的代码:

[代码]:

#define ID_LBL 500              
#define ID_BTN 501              
#define ID_TBC 502              

HWND hWnd;

void InserTabItem(HWND handle, LPWSTR text, int id)
{
TCITEM tci = { 0 };
tci.mask = TCIF_TEXT;
tci.pszText = text;
tci.cchTextMax = wcslen(text);
SendMessage(handle, TCM_INSERTITEM, id, LPARAM(&tci));
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CREATE:
{
    HWND button_handle = 0;
    HWND label_handle = 0;
    HWND tab_handle = 0;
    tab_handle = CreateWindowEx(WS_EX_CONTROLPARENT, WC_TABCONTROL, 0, WS_VISIBLE | WS_CHILD, 10, 10, 200, 150, hWnd, HMENU(ID_TBC), 0, 0);
    InserTabItem(tab_handle, L"page1", 0);
    InserTabItem(tab_handle, L"page2", 1);
    button_handle = CreateWindowEx(0, WC_BUTTON, L"test-button-page2", WS_VISIBLE | WS_CHILD, 10, 50, 150, 30, tab_handle, HMENU(ID_BTN), 0, 0);
    label_handle = CreateWindowEx(0, WC_STATIC, L"test-label-page1", WS_VISIBLE | WS_CHILD, 10, 100, 150, 30, tab_handle, HMENU(ID_LBL), 0, 0);
}
break;
case WM_CLOSE:
    DestroyWindow(hWnd);
    break;
case WM_DESTROY:
    PostQuitMessage(0);
    break;
default:
    return DefWindowProc(hWnd, Msg, wParam, lParam);
    break;
}

return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreviewInstance, LPSTR lpcmdline, int ncmdshow)
{
WNDCLASSEX wndexcls;
wndexcls.lpszClassName = L"win";
wndexcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndexcls.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wndexcls.hCursor = LoadCursor(NULL, IDC_ARROW);
wndexcls.hbrBackground = (HBRUSH)(COLOR_3DSHADOW + 1);
wndexcls.lpszMenuName = NULL;
wndexcls.style = NULL;
wndexcls.hInstance = hInstance;
wndexcls.cbSize = sizeof(WNDCLASSEX);
wndexcls.cbClsExtra = 0;
wndexcls.cbWndExtra = 0;
wndexcls.lpfnWndProc = WndProc;
RegisterClassEx(&wndexcls);

hWnd = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT, L"win", L"TestApp", WS_OVERLAPPEDWINDOW, 100, 100, 640, 380, 0, 0, hInstance, 0);
ShowWindow(hWnd, ncmdshow);
UpdateWindow(hWnd);



MSG wnd_msg;
while (GetMessage(&wnd_msg, NULL, 0, 0)>0)
{
    TranslateMessage(&wnd_msg);
    DispatchMessage(&wnd_msg);
}
return (int)wnd_msg.wParam;

}

我正在寻找安全正确的实施方案。

谢谢你的帮助

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

[更新]:

感谢您的评论,但没有详细回答:(

虽然这不是我要寻找的实现(NotDialogBased),但是从第四条链接中我提到了:

如何创建选项卡式对话框:

https://msdn.microsoft.com/zh-CN/library/hh298366.aspx

这是我该页面的代码:

[resource.h]:

#define IDD_Page1                       101
#define IDD_Page2                       102
#define IDD_Page3                       103
#define IDD_Main_Dialog                 104
#define IDC_BTN_Page1                   1001
#define IDC_BTN2_Page1                  1002
#define IDC_BTN_Page2                   1013
#define IDC_BTN_Page3                   1014

[Resource.rc]:

#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
#include "winres.h"
#undef APSTUDIO_READONLY_SYMBOLS
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

 //////////////////////////////////////////////////
 //
 // Dialog
  //

 IDD_Page1 DIALOGEX 0, 0, 313, 178
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
 PUSHBUTTON      "Button2-Page1",IDC_BTN2_Page1,129,107,67,22
 PUSHBUTTON      "Button-Page1",IDC_BTN_Page1,127,77,67,22
 END

 IDD_Page2 DIALOGEX 0, 0, 309, 177
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
 PUSHBUTTON      "Button-Page2",IDC_BTN_Page2,120,77,60,18
 END

 IDD_Page3 DIALOGEX 0, 0, 309, 177
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
 PUSHBUTTON      "Button-Page3",IDC_BTN_Page3,120,73,64,25
 END

 IDD_Main_Dialog DIALOGEX 0, 0, 309, 177
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
 END


////////////////////////////////////////////
//
// DESIGNINFO
 //

 #ifdef APSTUDIO_INVOKED
 GUIDELINES DESIGNINFO
 BEGIN
 IDD_Page1, DIALOG
 BEGIN
    LEFTMARGIN, 7
    RIGHTMARGIN, 306
    TOPMARGIN, 7
    BOTTOMMARGIN, 171
END

IDD_Page2, DIALOG
BEGIN
    LEFTMARGIN, 7
    RIGHTMARGIN, 302
    TOPMARGIN, 7
    BOTTOMMARGIN, 170
END

IDD_Page3, DIALOG
BEGIN
    LEFTMARGIN, 7
    RIGHTMARGIN, 302
    TOPMARGIN, 7
    BOTTOMMARGIN, 170
END

IDD_Main_Dialog, DIALOG
BEGIN
    LEFTMARGIN, 7
    RIGHTMARGIN, 302
    TOPMARGIN, 7
    BOTTOMMARGIN, 170
END
END
#endif    // APSTUDIO_INVOKED

#endif    

[Main.cpp]:

#include <windows.h>
#include <CommCtrl.h>
#include "resource.h"
#pragma comment(lib, "ComCtl32.lib")
#define C_PAGES 3 

INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);

HWND Win_Handle;
HWND Dailog_Handle;
HINSTANCE hInstance_Win_Global;

typedef struct {
WORD      dlgVer;
WORD      signature;
DWORD     helpID;
DWORD     exStyle;
DWORD     style;
WORD      cDlgItems;
short     x;
short     y;
short     cx;
short     cy;
WORD      pointsize;
WORD      weight;
BYTE      italic;
BYTE      charset;
} DLGTEMPLATEEX;

typedef struct tag_dlghdr {
HWND hwndTab;       // tab control 
HWND hwndDisplay;   // current child dialog box 
RECT rcDisplay;     // display rectangle for the tab control 
DLGTEMPLATEEX *apRes[C_PAGES];
} DLGHDR;

void InserTabItem(HWND handle, LPWSTR text, int id)
{
TCITEM tci = { 0 };
tci.mask = TCIF_TEXT;
tci.pszText = text;
tci.cchTextMax = wcslen(text);
SendMessage(handle, TCM_INSERTITEM, id, LPARAM(&tci));
}

DLGTEMPLATEEX* DoLockDlgRes(LPCTSTR lpszResName)
{
HRSRC hrsrc = FindResource(NULL, lpszResName, RT_DIALOG);
HGLOBAL hglb = LoadResource(hInstance_Win_Global, hrsrc);
return (DLGTEMPLATEEX *)LockResource(hglb);
}

VOID WINAPI OnChildDialogInit(HWND hwndDlg)
{
HWND hwndParent = GetParent(hwndDlg);
DLGHDR *pHdr = (DLGHDR *)GetWindowLong(
    hwndParent, GWL_USERDATA);
SetWindowPos(hwndDlg, NULL, pHdr->rcDisplay.left,
    pHdr->rcDisplay.top,//-2,
    (pHdr->rcDisplay.right - pHdr->rcDisplay.left),
    (pHdr->rcDisplay.bottom - pHdr->rcDisplay.top),
    SWP_SHOWWINDOW);

return;
} 
VOID OnSelChanged(HWND hwndDlg)
{
DLGHDR *pHdr = (DLGHDR *)GetWindowLong(hwndDlg, GWL_USERDATA);
int iSel = TabCtrl_GetCurSel(pHdr->hwndTab);
if (pHdr->hwndDisplay != NULL)
    DestroyWindow(pHdr->hwndDisplay);
pHdr->hwndDisplay = CreateDialogIndirect(hInstance_Win_Global,
    (DLGTEMPLATE *)pHdr->apRes[iSel], hwndDlg,DialogProc);
}
HRESULT OnTabbedDialogInit(HWND hwndDlg)
{
INITCOMMONCONTROLSEX iccex;
DWORD dwDlgBase = GetDialogBaseUnits();
int cxMargin = LOWORD(dwDlgBase) / 4;
int cyMargin = HIWORD(dwDlgBase) / 8;

TCITEM tie;
RECT rcTab;
HWND hwndButton;
RECT rcButton;
int i;

iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
iccex.dwICC = ICC_TAB_CLASSES;
InitCommonControlsEx(&iccex);

DLGHDR *pHdr = (DLGHDR *)LocalAlloc(LPTR, sizeof(DLGHDR));
SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)pHdr);

pHdr->hwndTab = CreateWindow(
    WC_TABCONTROL, L"",
    WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE,
    0, 0, 300, 200,
    hwndDlg, NULL, hInstance_Win_Global, NULL
    );
if (pHdr->hwndTab == NULL)
{
    return HRESULT_FROM_WIN32(GetLastError());
}

tie.mask = TCIF_TEXT | TCIF_IMAGE;
tie.iImage = -1;
tie.pszText = L"First";
TabCtrl_InsertItem(pHdr->hwndTab, 0, &tie);
tie.pszText = L"Second";
TabCtrl_InsertItem(pHdr->hwndTab, 1, &tie);
tie.pszText = L"Third";
TabCtrl_InsertItem(pHdr->hwndTab, 2, &tie);

pHdr->apRes[0] = DoLockDlgRes(MAKEINTRESOURCE(IDD_Page1));
pHdr->apRes[1] = DoLockDlgRes(MAKEINTRESOURCE(IDD_Page2));
pHdr->apRes[2] = DoLockDlgRes(MAKEINTRESOURCE(IDD_Page3));

SetRectEmpty(&rcTab);
for (i = 0; i < C_PAGES; i++)
{
    if (pHdr->apRes[i]->cx > rcTab.right)
        rcTab.right = pHdr->apRes[i]->cx;
    if (pHdr->apRes[i]->cy > rcTab.bottom)
        rcTab.bottom = pHdr->apRes[i]->cy;
}

MapDialogRect(hwndDlg, &rcTab);

TabCtrl_AdjustRect(pHdr->hwndTab, TRUE, &rcTab);
OffsetRect(&rcTab, cxMargin - rcTab.left, cyMargin - rcTab.top);

CopyRect(&pHdr->rcDisplay, &rcTab);
TabCtrl_AdjustRect(pHdr->hwndTab, FALSE, &pHdr->rcDisplay);

SetWindowPos(pHdr->hwndTab, NULL, rcTab.left, rcTab.top,
    rcTab.right - rcTab.left, rcTab.bottom - rcTab.top,
    SWP_NOZORDER);

hwndButton = GetDlgItem(hwndDlg, IDC_BTN_Page1);
SetWindowPos(hwndButton, NULL,
    rcTab.left, rcTab.bottom + cyMargin, 0, 0,
    SWP_NOSIZE | SWP_NOZORDER);

GetWindowRect(hwndButton, &rcButton);
rcButton.right -= rcButton.left;
rcButton.bottom -= rcButton.top;

hwndButton = GetDlgItem(hwndDlg, IDC_BTN2_Page1);
SetWindowPos(hwndButton, NULL,
    rcTab.left + rcButton.right + cxMargin,
    rcTab.bottom + cyMargin, 0, 0,
    SWP_NOSIZE | SWP_NOZORDER);

SetWindowPos(hwndDlg, NULL, 0, 0,
    rcTab.right + cyMargin + (2 * GetSystemMetrics(SM_CXDLGFRAME)),
    rcTab.bottom + rcButton.bottom + (2 * cyMargin)
    + (2 * GetSystemMetrics(SM_CYDLGFRAME))
    + GetSystemMetrics(SM_CYCAPTION),
    SWP_NOMOVE | SWP_NOZORDER);

OnSelChanged(hwndDlg);

return S_OK;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CREATE:
{
    Dailog_Handle = CreateDialogParam(hInstance_Win_Global, MAKEINTRESOURCE(IDD_Main_Dialog), hWnd, DialogProc, 0);
    ShowWindow(Dailog_Handle, SW_SHOWDEFAULT);
    UpdateWindow(Dailog_Handle);
    SetWindowPos(Dailog_Handle, 0, 10, 10, 500, 300, SWP_NOZORDER);

}
break;
case WM_CLOSE:
    DestroyWindow(hWnd);
    break;
case WM_DESTROY:
    PostQuitMessage(0);
    break;
default:
    return DefWindowProc(hWnd, Msg, wParam, lParam);
    break;
}

return 0;
}
INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_INITDIALOG:
{

    OnTabbedDialogInit(hWnd);
    OnChildDialogInit(hWnd);

    return (INT_PTR)TRUE;
}
    break;
case WM_NOTIFY:
{
    switch (((LPNMHDR)lParam)->code)
    {
    case TCN_SELCHANGE:
    {
        OnSelChanged(hWnd);
    }
    break;
    default:
        break;
    }

}
break;
case WM_CLOSE:
    DestroyWindow(hWnd);
    break;
case WM_DESTROY:
    PostQuitMessage(0);
    break;
}
return (INT_PTR)FALSE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreviewInstance, LPSTR lpcmdline, int ncmdshow)
  {
  WNDCLASSEX wndexcls;
  wndexcls.lpszClassName = L"win";
  wndexcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  wndexcls.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  wndexcls.hCursor = LoadCursor(NULL, IDC_ARROW);
  wndexcls.hbrBackground = (HBRUSH)(COLOR_3DSHADOW + 1);
  wndexcls.lpszMenuName = NULL;
  wndexcls.style = NULL;
  wndexcls.hInstance = hInstance;
  wndexcls.cbSize = sizeof(WNDCLASSEX);
  wndexcls.cbClsExtra = 0;
  wndexcls.cbWndExtra = 0;
  wndexcls.lpfnWndProc = WndProc;
  RegisterClassEx(&wndexcls);

 Win_Handle = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT, L"win", L"TestApp", WS_OVERLAPPEDWINDOW, 100, 100, 640, 380, 0, 0, hInstance, 0);
 hInstance_Win_Global = hInstance;
 ShowWindow(Win_Handle, SW_SHOWDEFAULT);
 UpdateWindow(Win_Handle);


MSG wnd_msg;
while (GetMessage(&wnd_msg, NULL, 0, 0)>0)
{
    TranslateMessage(&wnd_msg);
    DispatchMessage(&wnd_msg);
}
return (int)wnd_msg.wParam;
}

问题是,在调试之后,该应用程序将退出并且不显示任何内容。如果我对OnSelChanged(hWnd)和OnChildDialogInit(hWnd)进行注释,则该应用程序将正常启动,并显示tabcontrol,而不显示页面上的控件。看来问题出在这里。

输出日志:

  First-chance exception at 0x00BE1886 in testcppapp.exe: 0xC0000005: Access violation reading location 0x00000014.
 The program '[16220] testcppapp.exe' has exited with code 0 (0x0).

我已阅读以下有关访问冲突阅读位置的链接:

http://www.cplusplus.com/forum/general/17094/

但是我无法解决问题。

请发布您的答案并对此进行解释,而不仅仅是简短的评论!

谢谢你的帮助。

巴马克·谢米拉尼

一个问题在这里:

pHdr->hwndDisplay = CreateDialogIndirect(hInstance_Win_Global, 
    (DLGTEMPLATE*)pHdr->apRes[iSel], hwndDlg, DialogProc);

您正在对主对话框和子对话框重复使用相同的对话框过程。主对话框创建子对话框,子对话框使用相同的过程创建子对话框...也没有错误检查。

除此之外,这段代码太复杂了。只需在主窗口中使用一个对话框即可。创建一个新对话框,IDD_DIALOG1然后在其中拖放选项卡控件。分配IDC_TAB1标签控件ID。尝试从以下代码开始:

#include <Windows.h>
#include <CommCtrl.h>
#include "Resource.h"

#pragma comment(lib,"comctl32.lib")
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

HINSTANCE g_hinst;

struct TData {
    HWND page1, page2, page3;
    HWND tab;
} data;

BOOL CALLBACK DialogPage(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
    switch(msg) {
    case WM_COMMAND:
        switch (wp) {
            //...
        }
    }
    return FALSE;
}

void OnSelChange() {
    int sel = TabCtrl_GetCurSel(data.tab);
    ShowWindow(data.page1, (sel == 0) ? SW_SHOW : SW_HIDE);
    ShowWindow(data.page2, (sel == 1) ? SW_SHOW : SW_HIDE);
}

BOOL CALLBACK DialogProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
    switch (msg) {
    case WM_INITDIALOG: {
        data.page1 = CreateDialog(g_hinst, MAKEINTRESOURCE(IDD_Page1), hwnd, DialogPage);
        data.page2 = CreateDialog(g_hinst, MAKEINTRESOURCE(IDD_Page2), hwnd, DialogPage);

        data.tab = GetDlgItem(hwnd, IDC_TAB1);
        if (data.tab)
        {
            TCITEM tci = { 0 };
            tci.mask = TCIF_TEXT;
            tci.pszText = L"Page1";
            TabCtrl_InsertItem(data.tab, 0, &tci);
            tci.pszText = L"Page2";
            TabCtrl_InsertItem(data.tab, 1, &tci);

            RECT rc;//find tab control's rectangle
            GetWindowRect(data.tab, &rc);
            POINT offset = { 0 };
            ScreenToClient(hwnd, &offset);
            OffsetRect(&rc, offset.x, offset.y); //convert to client coordinates
            rc.top += 50;
            SetWindowPos(data.page1, 0, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW);
            SetWindowPos(data.page2, 0, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW);

            OnSelChange();
        }

        break;
    }

    case WM_NOTIFY: {
        switch (((LPNMHDR)lp)->code) {
        case TCN_SELCHANGE:
            OnSelChange();
            break;
        }
    }
    break;

    case WM_COMMAND:
        switch (wp) {
        case IDOK: EndDialog(hwnd, wp);  break;
        case IDCANCEL:  EndDialog(hwnd, wp);  break;
        }
    }

    return FALSE;
}

int WINAPI wWinMain(HINSTANCE hinst, HINSTANCE, LPWSTR, int)
{
    g_hinst = hinst;
    DialogBox(hinst, MAKEINTRESOURCE(IDD_DIALOG1), 0, DialogProc);
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Win32(C ++)中的选项卡损坏

来自分类Dev

C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

来自分类Dev

C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

来自分类Dev

将右键单击事件添加到TabControl容器中的选项卡

来自分类Dev

将面板控件动态添加到动态标签页 (C++ Builder Rad Studio)?

来自分类Dev

将控件添加到后台工作程序中的GUI

来自分类Dev

将PictureBox数组添加到控件中

来自分类Dev

如何以编程方式将图像添加到WPF选项卡控件项

来自分类Dev

如何以编程方式将图像添加到WPF选项卡控件项

来自分类Dev

如何将选项卡控件添加到RichTextBox?

来自分类Dev

如何将选项卡添加到ActionBar中以进行滑动选项卡?

来自分类Dev

将选项卡添加到特定列

来自分类Dev

将tabcontrol添加到Winforms中动态创建的tab控件中

来自分类Dev

C#文本在tabcontrol的选项卡中不会更改

来自分类Dev

C#文本在tabcontrol的选项卡中不会更改

来自分类Dev

检查 TabControl c# 中是否存在选项卡

来自分类Dev

将控件添加到集合中会导致将其从控件数组中删除

来自分类Dev

将排序添加到具有多个Expander控件的用户控件中

来自分类Dev

将控件添加到C#2015中,找不到this.Controls.Add(bla)方法吗?

来自分类Dev

如何将控件添加到动态创建的新标签页中?

来自分类Dev

Angular-UI选项卡:将类添加到特定选项卡

来自分类Dev

如何将编辑器添加到特定选项卡的整个工作表保护中?

来自分类Dev

检查是否将选项卡添加到TabControl.TabPages

来自分类Dev

将添加选项卡添加到TemplateRole

来自分类Dev

无法在AppDelegate中以编程方式将viewContoller添加到选项卡栏

来自分类Dev

将内容添加到android中的固定滑动选项卡

来自分类Dev

是否可以将网络共享选项卡添加到Ubuntu 16.04中的Nemo

来自分类Dev

将日期选择器日历添加到 tiddlywiki 5 中的右侧选项卡

来自分类Dev

如何将列添加到选项卡中?CSS、HTML

Related 相关文章

  1. 1

    Win32(C ++)中的选项卡损坏

  2. 2

    C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

  3. 3

    C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

  4. 4

    将右键单击事件添加到TabControl容器中的选项卡

  5. 5

    将面板控件动态添加到动态标签页 (C++ Builder Rad Studio)?

  6. 6

    将控件添加到后台工作程序中的GUI

  7. 7

    将PictureBox数组添加到控件中

  8. 8

    如何以编程方式将图像添加到WPF选项卡控件项

  9. 9

    如何以编程方式将图像添加到WPF选项卡控件项

  10. 10

    如何将选项卡控件添加到RichTextBox?

  11. 11

    如何将选项卡添加到ActionBar中以进行滑动选项卡?

  12. 12

    将选项卡添加到特定列

  13. 13

    将tabcontrol添加到Winforms中动态创建的tab控件中

  14. 14

    C#文本在tabcontrol的选项卡中不会更改

  15. 15

    C#文本在tabcontrol的选项卡中不会更改

  16. 16

    检查 TabControl c# 中是否存在选项卡

  17. 17

    将控件添加到集合中会导致将其从控件数组中删除

  18. 18

    将排序添加到具有多个Expander控件的用户控件中

  19. 19

    将控件添加到C#2015中,找不到this.Controls.Add(bla)方法吗?

  20. 20

    如何将控件添加到动态创建的新标签页中?

  21. 21

    Angular-UI选项卡:将类添加到特定选项卡

  22. 22

    如何将编辑器添加到特定选项卡的整个工作表保护中?

  23. 23

    检查是否将选项卡添加到TabControl.TabPages

  24. 24

    将添加选项卡添加到TemplateRole

  25. 25

    无法在AppDelegate中以编程方式将viewContoller添加到选项卡栏

  26. 26

    将内容添加到android中的固定滑动选项卡

  27. 27

    是否可以将网络共享选项卡添加到Ubuntu 16.04中的Nemo

  28. 28

    将日期选择器日历添加到 tiddlywiki 5 中的右侧选项卡

  29. 29

    如何将列添加到选项卡中?CSS、HTML

热门标签

归档