Skocz do zawartości

chunky

Członkowie
  • Postów

    4
  • Dołączył

  • Ostatnio

Posty napisane przez chunky

  1. Hej Wszystkim ;)

    Mam dialoga w nim dwa pola IDC_EDIT1 i IDC_EDIT2,
    wszystko mam opakowane w klasę

    DialogWnd.h http://pastebin.com/GyJPBqJu

    #pragma once
    
    #pragma comment(linker, \
      "\"/manifestdependency:type='Win32' "\
      "name='Microsoft.Windows.Common-Controls' "\
      "version='6.0.0.0' "\
      "processorArchitecture='*' "\
      "publicKeyToken='6595b64144ccf1df' "\
      "language='*'\"")
    
    #pragma comment(lib, "ComCtl32.lib")
    
    #include <windows.h>
    #include <tchar.h>
    #include <CommCtrl.h>
    
    #include "resource.h"
    
    class DialogWnd
    {
    private:
    	HWND hDialog;
    	BOOL ret;
    	MSG msg;
    
    public:
    	DialogWnd();
    	DialogWnd(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCmdLine, int nCmdShow);
    	~DialogWnd();
    
    	int WINAPI InitWindow(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCommandLine, int nCmdShow);
    	static INT_PTR CALLBACK DialogProc(HWND hDialog, UINT uMsg, WPARAM wParam, LPARAM lParam);
    };

    DialogWnd.cpp http://pastebin.com/6Eg12t0f

    #include "DialogWnd.h"
    
    DialogWnd::DialogWnd()
    {
    	InitCommonControls();
    	InitWindow(0, 0, 0, 0);
    }
    
    DialogWnd::DialogWnd(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCmdLine, int nCmdShow)
    {
    	InitCommonControls();
    	InitWindow(hInstance, h0, lpCmdLine, nCmdShow);
    }
    
    DialogWnd::~DialogWnd() {}
    
    int DialogWnd::InitWindow(HINSTANCE hInstance, HINSTANCE h0, LPTSTR lpCommandLine, int nCmdShow)
    {
    	hDialog = reinterpret_cast<HWND>(DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG), 0, DialogProc, 0));
    	ShowWindow(hDialog, nCmdShow);
    
    	while ((ret = GetMessage(&msg, 0, 0, 0)) != 0)
    	{
    		if (ret == -1) return -1;
    		if (!IsDialogMessage(hDialog, &msg))
    		{
    			TranslateMessage(&msg);
    			DispatchMessage(&msg);
    		}
    	}
    
    	return 0;
    }
    
    INT_PTR DialogWnd::DialogProc(HWND hDialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    	switch(uMsg)
    	{
    	case WM_INITDIALOG:
    		SetDlgItemText(hDialog, IDC_EDIT1, _T("off"));
    		return TRUE;
    
    	case WM_CLOSE:
    		return TRUE;
    
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		return TRUE;
    	}
    	return FALSE;
    }

    i teraz chciałbym mieć metodę, która

    a) odpowiednio zmieni mi IDC_EDIT1 / IDC_EDIT2 na "coś" ( SetDlgItemText? ),
    b) będzie wywoływana z innej klasy

    wydaje mi się, że problem stanowi msgloop, nie wiem jak to ugryźć, wskazówki mile widziane

  2. Sama coursera jest serwisem udostępniającym kursy online prowadzone przez uniwesytety i instytuty naukowe za darmo (jeśli chcemy uzyskać certyfikat informujący o ukończeniu kursu to musimy zapłacić).
    Zazwyczaj dostępne są nagrania wideo, fora, zadania czy nawet jakieś książki.
    Niestety wszystko po angielsku.

    Konspekt (jakby komuś nie chciało się klikać w link :))
    Low-level, memory-based attacks,
    Defenses against memory-based attacks (DEP, ASLR, SoftBound, CFI),
    Web security (SQLi, XSS, CSRF, session hijacking),
    Secure design,
    Automated code review,
    Penetration testing

     

    Sam jeszcze niezbyt wiele mogę o tym powiedzieć - wyjdzie w praniu :)

×
×
  • Utwórz nowe...