Kertoisiko joku minulle miten saan väriä tekstiin kirjoittaisi vaikka jonkun hello world tapaisen ohjelman jossa hello world on vaikka sinisellä.
Kielikin olisi hyvä mainita, ja sovelluspohja (konsoli, win-sovellus etc..)
Mutta asiaan: ainakin C/C++ konsolisovelluksissa tekstin väriä saa vaihdettua textcolor-funktiolla (conio.h), ja värillistä tekstiä saa sitten tulostettua ainakin cprintf-funktiolla joka ottaa huomioon värinvaihdon.
http://www.functionx.com/win32/
Tuolta löytynee, jos aiot win32 sovellusta tehä.
Saako millään funktiolla vaihdettua väriä, niin että toimisi coutillakin?
itse olen sen tehnyt näin;
#include <windows.h> #include <conio.h> int old_tmode; HWND hwnd; HDC hdc; COLORREF old_fcolor, old_bcolor; void main (void) { HDC hdc = GetDC(hwnd); old_fcolor = SetTextColor(hdc, RGB(0,255,0)); old_bcolor = SetBkColor(hdc, RGB(0,0,0)); old_tmode = SetBkMode(hdc, TRANSPARENT); TextOut(hdc, 20,30,"Hello world", strlen ("Hello world"); }
Mutta se tulostaa sen suoraan ruudulle ei ohjelma ikkunaan käytän kääntäjää visual c++ 6.0 ja kielenä c++.
teksturi kirjoitti:
itse olen sen tehnyt näin;
#include <windows.h> #include <conio.h> int old_tmode; HWND hwnd; HDC hdc; COLORREF old_fcolor, old_bcolor; void main (void) { HDC hdc = GetDC(hwnd); old_fcolor = SetTextColor(hdc, RGB(0,255,0)); old_bcolor = SetBkColor(hdc, RGB(0,0,0)); old_tmode = SetBkMode(hdc, TRANSPARENT); TextOut(hdc, 20,30,"Hello world", strlen ("Hello world"); }Mutta se tulostaa sen suoraan ruudulle ei ohjelma ikkunaan käytän kääntäjää visual c++ 6.0 ja kielenä c++.
Se on muuten int main(void)
kyllä se minulla ainakin toimii void:lla.
Riippuu täysin haluaako paluuarvon vai ei, tuossa ei joten void on parempi.
Jotkut kääntäjät ei vaan päästä voidia läpi.
mutta ärsyttävin totuus tässä on se että aina on pakko tehdä windows-sovellus että voi tehdä jotain edistyneempää. Windows sovellukset ovat hiton vaikeita, samoin kun C - kieli.
Windows sovellukset ovat hyvinkin helppoja kun niitten kanssa vähän näpertelee
Voisiko joku kertoa mikä on Windows sovellus tai näyttää.
teksturi kirjoitti:
Voisiko joku kertoa mikä on Windows sovellus tai näyttää.
No kai nyt olet Windows-käyttöjärjestelmän nähnyt? Windows-sovellukset ovat sovelluksia, jotka käyttävät pohjanaan Windowsia.
Jaa en tullut ajatelleeksi, mutta miten teen sen.
Noh windows sovellus voisi olla esimerkiksi yksinkertainen ikkuna tähän malliin:
#include <windows.h> #include <windowsx.h> #include <stdio.h> #include <math.h> #define WINDOW_CLASS_NAME "WINCLASS1" LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { PAINTSTRUCT ps; HDC hdc; switch(msg) { case WM_CREATE: { return(0); } case WM_PAINT: { hdc=BeginPaint(hwnd,&ps); EndPaint(hwnd,&ps); return(0); } case WM_DESTROY: { PostQuitMessage(0); return(0); } default:break; } return (DefWindowProc(hwnd,msg,wparam,lparam)); } int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) { WNDCLASSEX winclass; HWND hwnd; MSG msg; winclass.cbSize = sizeof(WNDCLASSEX); winclass.style =CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; winclass.lpfnWndProc = WindowProc; winclass.cbClsExtra=0; winclass.cbWndExtra = 0; winclass.hInstance = hinstance; winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); winclass.hCursor = LoadCursor(NULL,IDC_ARROW); winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); winclass.lpszMenuName = NULL; winclass.lpszClassName = WINDOW_CLASS_NAME; winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if (!RegisterClassEx(&winclass)) return (0); if (!(hwnd =CreateWindowEx(NULL, WINDOW_CLASS_NAME,"Win32 ikkuna",WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0,0,400,400,NULL,NULL,hinstance,NULL))) return (0); while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return(msg.wParam); }
Ja sitten vähän yksinkertaisempi on tämä aina niin rakas messagebox:
#include <windows.h> #include <windowsx.h> int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) { MessageBox(NULL,"Teksti","Ilmoitus",MB_OK | MB_ICONINFORMATION); return (0); }
Jos haluat tietää lisää niin laita mulle sähköpostia tai ota yhteyttä kaviaari @ ircnet.
Kiiti Kaviaari ylemmästä on apua, mutta alemman jo osasin olen yrittänyt tehdäkkin tuota, mutta en ole oikein onnistunut.
Aihe on jo aika vanha, joten et voi enää vastata siihen.