[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.01.10
Prihlásený: 10.10.12
Príspevky: 8
Témy: 6 | 6
NapísalOffline : 24.01.2010 21:42 | [ C++ ] ComboBox + Edit

caute, potreboval by som poradit ako mam naprogramovat programcek, ktory by pracoval. vyber z ComboBoxu a hned po vyberu by vypisal v Edit nejaku hodnotu.


Offline

Užívateľ
Užívateľ
[ C++ ] ComboBox + Edit

Registrovaný: 19.09.06
Prihlásený: 19.02.26
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 24.01.2010 22:07 | [ C++ ] ComboBox + Edit

v procedure okna kontroluj spravu CBN_DBLCLK, ktora informuje o dvojkliku na combobox a potom zavolaj SendMessage s parametrom CB_GETCURSEL, co zisti index vybrateho prvku a pre ziskanie vybrateho prvku zavolaj este raz SendMessage s parametrom CB_GETITEMDATA, co ak sa dobre pametam vrati pointer na retazec. A nasledne uz iba nieco das do toho editu.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.01.10
Prihlásený: 10.10.12
Príspevky: 8
Témy: 6 | 6
Napísal autor témyOffline : 30.01.2010 21:54 | [ C++ ] ComboBox + Edit

pls, mozes to trocha viac rozpisat a keby sa dalo nejaky ten vzor ( pripadne zdrojak ), som len zaciatocnik, dik


Offline

Užívateľ
Užívateľ
[ C++ ] ComboBox + Edit

Registrovaný: 19.09.06
Prihlásený: 19.02.26
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 31.01.2010 1:18 | [ C++ ] ComboBox + Edit

no, ako som zistil, trosku som to poplietol v prvom poste a zabudol som na niektore drobnosti, napriklad, ze niektore typy Comboboxov nedostavaju spravu dvojkliku :). Funguje to tak, ze sa prijme sprava WM_COMMAND, znaciaca vseobecnu aktivitu nejakeho kliknutia na nieco a podobne. A vo wParam a lParam su ulozene blizsie info.
Tu je priklad (je to sablona z DEV-C++, ja som iba doplnil kod tykajuci sa comboboxu (to co neni okomentovane je moje)) :). Oproti prvemu postu je zmena aj v sprave CB_GETITEMDATA, ked sa mi nechcelo hladat co vlastne a kam vracia, pouzita je jednoduchsia.
//aha, v nadpise mas editbox, co uz, ak nebudes vediet, spytaj sa :D

Kód:
#include <windows.h>

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
HWND ComboBox1;


int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);
    ComboBox1 = CreateWindowEx(0,"COMBOBOX",0,WS_CHILD | CBS_DROPDOWN,100,100,100,100,hwnd,NULL,hThisInstance,0);
    ShowWindow(ComboBox1,1);
    SendMessage(ComboBox1,CB_ADDSTRING,0,(LPARAM)"1");
    SendMessage(ComboBox1,CB_ADDSTRING,0,(LPARAM)"2");
    SendMessage(ComboBox1,CB_ADDSTRING,0,(LPARAM)"3");
    SendMessage(ComboBox1,CB_ADDSTRING,0,(LPARAM)"4");
    SendMessage(ComboBox1,CB_ADDSTRING,0,(LPARAM)"5");

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int index;
    char mes[10];
    switch (message)                  /* handle the messages */
    {
        case WM_COMMAND:
            if ((HWND)lParam==ComboBox1 && wParam==0x10000) {
                index=SendMessage(ComboBox1,CB_GETCURSEL,0,0);
                if (index==-1) {
                    MessageBoxA(0,"nic","error",0);
                } else {
                    SendMessage(ComboBox1,CB_GETLBTEXT,index,(LPARAM)mes);
                    MessageBoxA(0,mes,"success",0);
                }
            }
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}


 [ Príspevkov: 4 ] 


[ C++ ] ComboBox + Edit



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

C++ Builder ComboBox

v Backend

2

714

17.01.2009 0:30

toma-mato

V tomto fóre nie sú ďalšie neprečítané témy.

combobox (Java,JSP)

v Backend

1

821

18.01.2011 16:56

trexi

V tomto fóre nie sú ďalšie neprečítané témy.

EXCEL - cyklus na combobox

v Ostatné programy

1

1119

28.07.2009 17:10

PaloPa

V tomto fóre nie sú ďalšie neprečítané témy.

Dual combobox v HTML/PHP

v Frontend

5

908

14.04.2015 17:47

void

V tomto fóre nie sú ďalšie neprečítané témy.

ComboBox a využitie z pohľadu MySQL

v Ostatné

11

888

30.07.2010 9:08

Manny

V tomto fóre nie sú ďalšie neprečítané témy.

Mám sa učiť C ++/objective C/ C#?

v Backend

5

849

08.07.2014 20:40

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

edit

v Kôš

3

9

09.02.2018 11:48

valneti

V tomto fóre nie sú ďalšie neprečítané témy.

Edit profilu

v Backend

2

1413

14.12.2008 18:43

kajbo

V tomto fóre nie sú ďalšie neprečítané témy.

Edit error :)

v Oznámenia a návrhy

2

1335

12.07.2008 23:20

Triminka

V tomto fóre nie sú ďalšie neprečítané témy.

BBcode Edit

v CMS

9

960

23.10.2006 13:48

PCMark

V tomto fóre nie sú ďalšie neprečítané témy.

Cool Edit

v Audio programy

0

1099

24.05.2007 18:04

diademus

V tomto fóre nie sú ďalšie neprečítané témy.

Image edit

v Ostatné programy

2

1323

09.04.2006 13:49

Spirit

V tomto fóre nie sú ďalšie neprečítané témy.

Tlačítko EDIT

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Oznámenia a návrhy

38

4994

19.05.2007 0:12

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

edit nastavenie

v Ostatné

9

907

14.05.2009 8:10

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

Edit - prázdne

v Ostatné

3

741

05.06.2011 0:11

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

OC Zeleninky EDIT!

v Biosy a ladenie výkonu

8

1259

06.01.2006 13:17

Rasputin



© 2005 - 2026 PCforum, edited by JanoF