Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » GetDlgItem schlägt fehl

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.03.2008, 14:42 Uhr
~aslkdjf
Gast


hi,

beim aufruf von GetDlgItem bekomm ich ein null handle zurück und ich verstehe nicht so ganz wieso.

ich erstelle mir einen button und geben dem auch eine ID


C++:
#define BUTTO 3245

LRESULT CALLBACK WndProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam)
{
    static HWND hDia;
    static HWND hBut=NULL;
    
        


    switch(uiMessage)
    {
    case WM_CREATE:
            {
                hBut = CreateWindow(TEXT("button"), TEXT("Neues"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON |WS_TABSTOP,
                                    0, 0, 0, 0, hWnd, (HMENU) BUTTO, hInst, NULL);
                if (hBut != NULL)
                    CreateToolTip(BUTTO, hBut, L"ich bin der doofe tooltiptext");

                MoveWindow(hBut, 30, 49, 200,200, true);


                break;
            }

................................................

BOOL CreateToolTip(int toolID, HWND hDlg, WCHAR* pText)
{

    if (!toolID || !hDlg || !pText)
    {
        return FALSE;
    }
    // Get the window of the tool.
    HWND hwndTool = GetDlgItem(hDlg, toolID); <--- null handle

..........................
}




was mach ich falsch, hDlg ist gültig, die id passt auch und trotzdem, wenn ich den fehler abfrage, sagt er mir control id nicht gefunden....wie kommt das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.03.2008, 15:15 Uhr
xXx
Devil


Ganz einfach. Du musst CreateToolTip(BUTTO, hWnd, L"Sample"); aufrufen ... das Parent-Window des Button!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.03.2008, 15:26 Uhr
~aslkdjf
Gast


danke...., dachte das wäre der einzigste fehler gewesen, mein tooltip will sich nämlich nicht erstellen lassen

ich erzeuge einen button, (wird auch angezeigt) und gebe diesem einen tooltip, allerdings funktioniert das mit dem tooltip nicht so recht.


C++:
LRESULT CALLBACK WndProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam)
{
    static HWND hDia;
    static HWND hBut=NULL;
    
        


    switch(uiMessage)
    {
    case WM_CREATE:
            {
                hBut = CreateWindow(TEXT("button"), TEXT("Neues"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON |WS_TABSTOP,
                                    0, 0, 0, 0, hWnd, (HMENU) BUTTO, hInst, NULL);
                
                CreateToolTip(BUTTO, hWnd, L"ich bin der doofe tooltiptext");
.....................
BOOL CreateToolTip(int toolID, HWND hDlg, WCHAR* pText)
{
    // toolID:  the resource ID of the control.
    // hDlg:    the handle of the dialog box.
    // pText:   the text that appears in the ToolTip.
    // g_hInst: the global instance handle.
    
    if (!toolID || !hDlg || !pText)
    {
        return FALSE;
    }

    // Get the window of the tool.
    HWND hwndTool = GetDlgItem(hDlg, toolID);

    
    // Create the ToolTip.
    HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
                              WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              hDlg, NULL,
                              hInst, NULL);
                              
   if (!hwndTool || !hwndTip)
   {
       return FALSE;
   }                              
                              
    // Associate the ToolTip with the tool.
    TOOLINFO toolInfo = { 0 };
    toolInfo.cbSize = sizeof(toolInfo);
    toolInfo.hwnd = hDlg;
    toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
    toolInfo.uId = (UINT_PTR)hwndTool;
    toolInfo.lpszText = pText;
    toolInfo.hinst = hInst;
    SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);

    return TRUE;
}



sieht da jemand noch nen fehler? hab jetzt wirklich schon zahlreiche beispiele angesehen und auch bei msdn geguckt, aber ich verstehe nicht, was ich falsch mache.

jemand ne idee?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.03.2008, 20:22 Uhr
xXx
Devil


InitCommonControlsEx drin?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.03.2008, 14:10 Uhr
~aslkdjf
Gast


ja, ist drin

hab ich so intialisiert

C++:
   INITCOMMONCONTROLSEX icc;
   icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
   icc.dwICC  = ICC_BAR_CLASSES;
   InitCommonControlsEx(&icc);



verstehe leider überhaupt nicht, was ich da noch falsch machen könnte.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: