C++ Windows.h Vista Stili
Merhaba Arkadaslar.Windows.h kütüphanesinde bir program yapalım(sayının karesini alma)
kodlara geçelim:
yukardaki kodu derleyip çalıştırdığımızda aşağıdaki gibi bir stil olur:
gelin bu programı aşağıdaki resimde görünen vista stili ile yapalım:
ilk önce projemizin bulunduğu dizine aşağıdaki Vista_Stilim.xml dosyasını oluşturup atıyoruz:
sonra Visual Studio'da Projemiz açıkken Alt+F7 yapıyoruz ve Aşağıdaki gibi sırasıyla yapıyoruz:
ve derleyip çalıştırıyoruz o Vista Stiline Ulaşıyoruz
-->> Ama .xml dosyasını entegere ettikten sonra kare kökünü almıyor onu bende anlamadım .d
Merhaba Arkadaslar.Windows.h kütüphanesinde bir program yapalım(sayının karesini alma)
kodlara geçelim:
Kod:
#include <Windows.h> //windows apisini kullanmak için
#define ID_DUGME 100
#define ID_DUGME2 101
#define ID_TEXT 102
HWND hdugme;
HWND hdugme2;
HWND hmetin;
const char Classismi[] = "pencere";
// gelen mesajları işleyen kısım
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
int wmId;
int sayi;
char yazi[50];
switch(msg)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
switch (wmId)
{
case ID_DUGME:
//birinci düğmeye basıldığında yapılacak işlemler
SendDlgItemMessage(hwnd, ID_TEXT,EM_GETLINE,(WPARAM) 0,(LPARAM)yazi);
sayi = atoi(yazi);
sayi = sayi*sayi;
itoa(sayi, yazi, 10);
MessageBox(NULL,yazi,"bulunan sonuç",MB_OK);
break;
case ID_DUGME2:
//ikinci düğmeye basıldığında yapılacak işlem
SendMessage(hmetin, WM_SETTEXT, 0,(LPARAM)" ");
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX w; //aşağıda tanımlamasını yapacağımız pencere özellikleri içeren değişken
HWND hwnd;
MSG Msg;
//birinci adım: Pencere özelliklerini belirten bir sınıf değişkeni tanımlanıyor
w.cbSize = sizeof(WNDCLASSEX);
w.style = 0;
w.lpfnWndProc = WndProc;
w.cbClsExtra = 0;
w.cbWndExtra = 0;
w.hInstance = hInstance;
w.hIcon = LoadIcon(NULL, IDI_APPLICATION);
w.hCursor = LoadCursor(NULL, IDC_ARROW);
w.hbrBackground = (HBRUSH)(COLOR_WINDOW);
w.lpszMenuName = NULL;
w.lpszClassName = Classismi;
w.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&w))//Eğer Kayıt Tamamalanmadı ise:
{
MessageBox(NULL, "Pencere tanımlama hatası!", "Hata!", MB_ICONEXCLAMATION | MB_OK); return 0;
}
// ikinci adım pencere oluşturma
hwnd = CreateWindow(Classismi,"Sayı Giriniz",//class adı, pencere başlığı,
WS_OVERLAPPEDWINDOW,//pencere sitili WS_OVERLAPPEDWINDOW(standart windows pencere sitili)
200, 200,//kordinatları x,y
350, 125,//pencere genişlik,yüksekliği
NULL, NULL,
hInstance,
NULL);
hdugme = CreateWindow("BUTTON","Karesini Al",//class adı, buton yazısı,
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,//buton sitili
220,10,//kordinatları x,y
100,30,//buton genişlik,yüksekliği
hwnd, (HMENU) ID_DUGME,//hangi pencerede bulunacağı, tıklandığında etkileyeceği
hInstance,
NULL);
hdugme2 = CreateWindow("BUTTON", "Temizle",//class adı, buton yazısı,
WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,//buton sitili
220,50,//kordinatları x,y
100,30,//buton genişlik,yüksekliği
hwnd, (HMENU) ID_DUGME2,//hangi pencerede bulunacağı, tıklandığında etkileyeceği
hInstance,
NULL);
hmetin = CreateWindow("EDIT", "",//class adı, textbox yazısı,
WS_CHILD | WS_VISIBLE |WS_BORDER| ES_NUMBER,//textbox sitili
10, 10,//kordinatları x,y
200, 30,//textbox genişliği,yüksekliği
hwnd, (HMENU)ID_TEXT,GetModuleHandle(NULL),
NULL);
SendDlgItemMessage(hwnd, ID_TEXT,EM_SETLIMITTEXT,(WPARAM) 4,(LPARAM)0);
ShowWindow(hwnd, SW_SHOW);//penceremizi görünür yapıyoruz
UpdateWindow(hwnd);
// üçüncü adım: mesajların alınması ve ayrılması
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
gelin bu programı aşağıdaki resimde görünen vista stili ile yapalım:
ilk önce projemizin bulunduğu dizine aşağıdaki Vista_Stilim.xml dosyasını oluşturup atıyoruz:
Kod:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Winweb.VistaStilim"
type="win32"
/>
<description>.NET control deployment tool</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
sonra Visual Studio'da Projemiz açıkken Alt+F7 yapıyoruz ve Aşağıdaki gibi sırasıyla yapıyoruz:
ve derleyip çalıştırıyoruz o Vista Stiline Ulaşıyoruz
-->> Ama .xml dosyasını entegere ettikten sonra kare kökünü almıyor onu bende anlamadım .d