На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> 2 вопросa по winapi
    Jeno
    char a[3] = "30";
    это срока! строка состоит из 3-х символов, каждый по байту. первый символ - '3', второй - '0', третий - символ конца строки - '\n';

    тебе нужет u_short, что есть unsigned short, что есть 2 байтоное целое число!!
    хоть строка и есть число, но представлена она в совершенно другом формате!
    Откуда компьютер знает что те символы которые ты ввел - это число в конце концов? Это должен знать (и проверять) ты!!
    и затем из этих символов сделать нормальное, понятное компьютеру число!
    для этого есть ряд средств.

    из чистого C++ есть строковые потокаи для узких и широких символоа (stringstream, wstringstream)
    на апи есть atoi, wtoi
      Цитата LuckLess @
      третий - символ конца строки - '\n';

      хочу не согласится, конец строки это \0!

      а по делу, у человека помоему в проекте прописано #define UNICODE, если у него компилятор постоянно пытается подсунуть ему Unicode АПИшки...
        Цитата wertyman @
        хочу не согласится, конец строки это \0!

        ну да..
        Цитата wertyman @
        а по делу, у человека помоему в проекте прописано #define UNICODE, если у него компилятор постоянно пытается подсунуть ему Unicode АПИшки...

        ну да.. виндовый проект по умолчанию юникодный вродебы..
          Цитата LuckLess @
          ну да.. виндовый проект по умолчанию юникодный вродебы..

          Вот блин, это 2005 такие чудеса выдает чтоли ? :wacko:
          И зачем оно надо, пусть человек работает нормально со строками...
            Цитата wertyman @
            И зачем оно надо, пусть человек работает нормально со строками...

            а чем тебе широкие строки не нормальные?
              ответ на 1-й вопрос: Рисуй главное окно в редакторе, а показывай его так:
              ExpandedWrap disabled
                void Main()
                {
                    DialogBox(GetModuleHandle(NULL),(LPCSTR)IDD_DIALOG1,NULL,DlgProc);
                }



              Тупой пример из э-э... статьи... :
              ExpandedWrap disabled
                #include "windows.h"
                #include "resource.h"
                 
                char msg[1000];
                char buf[100];
                char bigb[100];
                char minb[100];
                 
                INT_PTR CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
                {
                    switch (uMsg)
                    {
                    case WM_INITDIALOG:
                        SetClassLong(hwndDlg, GCL_HICON, (LONG)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON1)));        
                        break;
                    case WM_COMMAND:
                        if (HIWORD(wParam)==BN_CLICKED)
                        {
                            switch(LOWORD(wParam))
                            {
                            case IDOK:
                                GetDlgItemText(hwndDlg,IDC_EDIT1,buf,100);
                                lstrcpy(bigb,buf);
                                lstrcpy(minb,buf);
                                CharUpper(bigb);
                                CharLower(minb);
                                wsprintf(msg,"Пароль: '%s'\nБольшими: '%s'\nМаленькими: '%s'\nЧислобукофф: %i\n\nАминь.",
                                    buf,bigb,minb,lstrlen(buf));
                                MessageBox(hwndDlg,msg ,"Пароль:",MB_ICONINFORMATION);
                                break;
                            case IDCOPUT:
                                SendMessage(hwndDlg,WM_CLOSE,0,0);
                                break;
                            }
                        }
                        break;
                    case WM_CLOSE:
                        if (MessageBox(hwndDlg,"Закрыть?","",MB_YESNO)==IDYES)
                        {
                            EndDialog(hwndDlg,0);
                        }
                        break;
                    }
                    return 0;
                }
                 
                void Main()
                {
                    DialogBox(GetModuleHandle(NULL),(LPCSTR)IDD_DIALOG1,NULL,DlgProc);
                }
                Цитата mad_avenger @
                ExpandedWrap disabled
                  void Main()
                  {
                      DialogBox(GetModuleHandle(NULL),(LPCSTR)IDD_DIALOG1,NULL,DlgProc);
                  }

                вот это и т.п. получается не нужно?
                з.ы.если я не создаю окно, а загружаю его с РС, знач мне не нужно это?
                ExpandedWrap disabled
                  ATOM MyRegisterClass(HINSTANCE hInstance)
                  {
                      WNDCLASSEX wcex;
                   
                      wcex.cbSize = sizeof(WNDCLASSEX);
                   
                      wcex.style          = CS_HREDRAW | CS_VREDRAW;
                      wcex.lpfnWndProc    = WndProc;
                      wcex.cbClsExtra     = 0;
                      wcex.cbWndExtra     = 0;
                      wcex.hInstance      = hInstance;
                      wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINAPI));
                      wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
                      wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
                      wcex.lpszMenuName   = MAKEINTRESOURCE(IDC_WINAPI);
                      wcex.lpszClassName  = szWindowClass;
                      wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
                   
                      return RegisterClassEx(&wcex);
                  }



                За пример спасибо огромное :)
                з.ы.а где такие статьи можно найти? просто все самому приходится узнать....весь мсдн перерыл пока нашел что мне нужно :)
                  на счет постоянной конвертации из широких символов в простые, зачем усложнять себе жизнь и использовать char веть есть же замечательный тип TCHAR. А на счет главного окна, то его тоже можно сделать диалогом и спокойно редактировать через редактор.
                  Сообщение отредактировано: maksa_2000 -
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0331 ]   [ 16 queries used ]   [ Generated: 2.05.24, 18:46 GMT ]