Re[3]: Помогите начать программировать на Visual C++
От: adontz Грузия http://adontz.wordpress.com/
Дата: 31.03.02 12:25
Оценка: 13 (2)
Здравствуйте Styk, Вы писали:

Если тебе надо посто начать начни с

Win32 Console Application или Win32 Appilcation (пункты File>New|Projects)

Скачай VisualAssist с www.wholetomato.com это сбережёт много нервов когда забудешь имена констант и макросов(встроенный IntelliSence не работает с #define)

Полазий вообще по ресурсам этого сайта здесь много толковых ссылок на полезные Add-on-ы к студии
Не бойся выводить всю инфу по началу printf-ом и MessageBox-ами главное, что хоть что-то работает

Задавай здесь ламерские вопросы ! А потом ставь 3-ки за ответы ! Знаешь сколько людей тебе быстро ответят ?

Вот пара (или больше, я уж плохо помню математику) функций для начала. Их подробное описание найдёшь в MSDN и/или PlatformSDK надеюсь они у тебя есть.
BOOL GetComputerName(LPTSTR lpBuffer,LPDWORD lpnSize);
int GetSystemMetrics(int nIndex);
DWORD GetVersion(VOID);
BOOL SystemParametersInfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);
DWORD ExpandEnvironmentStrings(LPCTSTR lpSrc,LPTSTR lpDst,DWORD nSize);
BOOL GetUserName(LPTSTR lpBuffer,LPDWORD nSize);


А вот так создаётся окно
// процедура обработки сообщений окна
LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
 {
  switch (msg)
   {
    case WM_DESTROY:
      PostQuitMessage(0); // Если закрыли окно то и программу завершить, для не главного окна естественно не надо
     break;
   }
  return DefWindowProc(hWnd,msg,wParam,lParam) // вот это объязательно
 }
//
int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCommandLine,int nCmdShow)
 {
  char classname[] = "Какое-то название которе должно быть уникально в системе";// лучше его генерировать от таймера
  //
  WNDCLASSEX wndClass = {sizeof(WNDCLASSEX),
                         CS_HREDRAW|CS_VREDRAW,
                         WndProc,
                         0,0,
                         hInstance,// Здесть моно и GetModuleHandle(NULL)
                         LoadIcon(NULL,IDI_APPLICATION),
                         LoadCursor(NULL,IDC_ARROW),
                         (HBRUSH)(COLOR_WINDOW+1),
                         NULL,
                         &classname[0],0};
  // 
  RegisterClassEx(&wndClass);
  // 
  MSG mesage;

  HWND hWnd = CreateWindowEx(styleEx,&classname[0],lpWindowName,style,
  10, // CW_USEDEFAULT чтоб Windows выбрал за тебя положение окна
  10,
  400,// CW_USEDEFAULT чтоб Windows выбрал за тебя высоту и ширину окна
  300,
  NULL,NULL,NULL);
  ShowWindow(hWnd,nCmdShow) // можно ShowWindow(hWnd,SW_SHOWNORMAL);
  UnpdateWindow(hWnd);
  while(GetMessage(&message,0,0,0)) // пока не вызвали PostQuitMessage
   {
    TranslateMessage(&message);
    DispatchMessage(&message);
   }

  return 0;
 }
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.