C++ LİSTBOX KULLANIMI

C++ programlama dili ile Windows forma listbox eklemek. Listbox’a veri eklemek ve listboxtan veri okumak. Örnek program.


C++ ile listbox’u forma aşağıdaki gibi ekleyebiliriz.

#define LISTBX1 101
HWND ListShow1;
ListShow1 = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_WINDOWEDGE, TEXT("listbox"), "", WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOVSCROLL, 425, 50, 225,350, hwnd, HMENU(LISTBX1), NULL, NULL);
   

Oluşturulan listbox’a aşağıdaki gibi veri eklenebilir.

void ButtonClick()
{

  int len=1;
  char data[1024];
  len=GetWindowTextLength(TxBox1) + 1;
  GetWindowText(TxBox1,data,len);
  SendMessage(ListShow1,LB_ADDSTRING,(WPARAM)0,(LPARAM)data);
  
}


Listbox’ta seçili satırın indis değeri aşağıdaki şekilde alınır.

int lnx = (int)SendMessage(ListShow1, LB_GETCURSEL, 0, 0);
Seçili satır aşağıdaki şekilde “”data” adlı bir değişkene aktarılabilir.
 SendMessage(ListShow1,LB_GETTEXT,lnx,(LPARAM)data);


Program Örneği

Program forma 1 adet textbox, 1 adet listbox ve 2 adet button ekliyor. 1. Buttona tıklayınca textboxta yer alan değeri listbox’a yazdırıyor. Listbox’tan herhangi bir satır seçilip 2. Buttona tıklayınca seçili satırdaki veriyi bir değişkene aktarıp mesaj penceresinde görüntülüyor.

Bu program hem DEV C++ ile hem de Visual studio ile çalışır. Yalnız ben her iki editörde de Empty Project seçeneği ile boş proje oluşturarak yazdım kodları. 

DEV C++ ile Empty Project oluşturarak kodları yazarsanız programı derlemeden önce Project >>Project options adımları ile açılan pencerede Type kısmından WIN32 GUI seçeneğini seçmeyi unutmayın.

Kolay Gelsin.


#include <windows.h>
#include <iostream>
#define Button1 21
#define Button2 22
#define LISTBX1 101
#define TextBox1 201;
HWND BtnX1;
HWND BtnX2;
HWND ListShow1;
HWND TxBox1;
void ButtonClick();
void Button2_Click();
using namespace std;
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
 switch(Message) 
 {
  
  case WM_DESTROY: 
  {
   PostQuitMessage(0);
   break;
  }

   case WM_COMMAND:
    
    
  switch(wParam)
  {
   case Button1:
    ButtonClick();
   break;
   
   case Button2:
    Button2_Click();
   break;
  }
   
  default:
   return DefWindowProc(hwnd, Message, wParam, lParam);
 }
 return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
 WNDCLASSEX wc; 
 HWND hwnd; 
 MSG msg; 
 memset(&wc,0,sizeof(wc));
 wc.cbSize = sizeof(WNDCLASSEX);
 wc.lpfnWndProc = WndProc; 
 wc.hInstance = hInstance;
 wc.hCursor = LoadCursor(NULL, IDC_ARROW);

 wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
 wc.lpszClassName = "WindowClass";
 wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
 wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); 
 if(!RegisterClassEx(&wc)) {
  MessageBox(NULL, "Window Registration Failed!", "Error!",MB_ICONEXCLAMATION|MB_OK);
  return 0;
 }
 hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, "WindowClass","LISTBOX", WS_VISIBLE|WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, 
  CW_USEDEFAULT,
  1020, 
  680, 
  NULL,NULL,hInstance,NULL);
    
    ListShow1 = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_WINDOWEDGE, TEXT("listbox"), "", WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOVSCROLL, 425, 50, 225,350, hwnd, HMENU(LISTBX1), NULL, NULL);
    
   TxBox1 = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_WINDOWEDGE, TEXT("Edit"), TEXT(" "),
   WS_CHILD | WS_VISIBLE, 150, 50, 220,
   25, hwnd, NULL, NULL, NULL);
   
   BtnX1 = CreateWindow("button", "EKLE", WS_VISIBLE | WS_CHILD, 60, 450, 150, 25, hwnd, HMENU(Button1), NULL, NULL);
   BtnX2 = CreateWindow("button", "GOSTER", WS_VISIBLE | WS_CHILD, 360, 450, 150, 25, hwnd, HMENU(Button2), NULL, NULL);
   
   
   
 if(hwnd == NULL) {
  MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
  return 0;
 }

   
 while(GetMessage(&msg, NULL, 0, 0) > 0) { 
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 }
 return msg.wParam;
}
void ButtonClick()
{

  int len=1;
  char data[1024];
  len=GetWindowTextLength(TxBox1) + 1;
  GetWindowText(TxBox1,data,len);
  SendMessage(ListShow1,LB_ADDSTRING,(WPARAM)0,(LPARAM)data);
  
}
void Button2_Click()
{

  char data[1024];
  int lnx = (int)SendMessage(ListShow1, LB_GETCURSEL, 0, 0);
  SendMessage(ListShow1,LB_GETTEXT,lnx,(LPARAM)data);
   MessageBox(NULL, data,"LISTBOX",MB_ICONEXCLAMATION|MB_OK);
  
  
}


DEV C++ İLE WİNDOWS FORM VE TEXTBOX KONTROLÜ

C++ İLE COMBOBOX KULLANIMI



SANATSAL BİLGİ

23/01/2017


  • YORUM YAZ
  • ADI SOYADI(veya nick)
  • YORUM


COPYRIGHT© HER HAKKI SAKLIDIR
Sitede Yer Alan Bilgi Belge Ve Materyallerin İzinsiz olarak Kopyalanması ve Alıntılanması Yasaktır

SANATSAL BILGI