begin process at 2010 03 16 21:47:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Gérer un programme devant tourner sur 1 PC avec 2 écrans ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gérer un programme devant tourner sur 1 PC avec 2 écrans ???

jeudi 12 juin 2008 à 11:25:32 | Gérer un programme devant tourner sur 1 PC avec 2 écrans ???

nascimo

Bonjour, je dois programmer une appli sur 2 écrans (une fenêtre pour chaque écran). Ces 21 écrans étant bien sur reliè au même PC.
Je suis sous borland et je n'ai rien trouvé sur l'aide, idem sur les forums ...
A part la variable 'screen' qui permet tout juste de connaitre la résolution ...

Je voulais savoir si mon idée était possible et si oui, comment ? (composant borland, événement window à intercepter ...)

Merci d'avance pour vos réponses
jeudi 12 juin 2008 à 11:27:21 | Re : Gérer un programme devant tourner sur 1 PC avec 2 écrans ???

nascimo

"Ces 21 écrans étant bien sur reliè au même PC." -> erreur bien sur, il s'agit bien de 2 écrans ... sa me pose déjà assez d'ennui comme sa ;)
vendredi 13 juin 2008 à 16:44:45 | Re : Gérer un programme devant tourner sur 1 PC avec 2 écrans ???

_Jonathan

salut,

je te propose de regarder le framework Qt...vu que tu utilises borland, un petit plugin (dll) en qt (c++ multi-plateforme) te permettra de savoir combien tu as d'écrans (sa tu t'en fou) et surtout la résolution pour un écran donné : http://doc.trolltech.com/4.4/qdesktopwidget.html

certes, il te faudra utiliser un autre framework et donc te former un peu dessus, mais bon...avec ça, tu pourras placer n'importe quelle fenetre sur n'importe quel bureau.
samedi 14 juin 2008 à 12:45:33 | Re : Gérer un programme devant tourner sur 1 PC avec 2 écrans ???

f_l_a_s_h_b_a_c_k

Réponse acceptée !
Salut moi aussi j ai 2 ecran et j ai programer ca si tu veux l essayer

j ai fait une pettie fonction que s appelle dual



// 2_ecran.cpp : Defines the entry point for the application.
//

#include <windows.h>



#define COMPILE_MULTIMON_STUBS

 
#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst;                                // current instance
TCHAR szTitle[MAX_LOADSTRING];                    // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];            // the main window class name

// Forward declarations of functions included in this code module:
ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

 

 HWND Main;
 HWND View;
 int chk=0;
 
     int x=0,y=0,xx=0,yy=0;
 int dx=0,dy=0,dxx=0,dyy=0;



#define    say(h,s)    MessageBox(h,s,"Dual",MB_OK | MB_ICONINFORMATION    );

int Dual(int &lx, int &ly, int &lxx,int &lyy,  int &ldx,int &ldy, int &ldxx,int  &ldyy)
{ int value=1; //set 1 ecran

    //ecran 1
    lx=0;
    ly=0;
    lxx = GetSystemMetrics(SM_CXSCREEN);
    lyy = GetSystemMetrics(SM_CYSCREEN);
    ////////////////////


    //ecran 2
    ldx=lxx+1;
    ldy=0;
    ldxx=(GetSystemMetrics(SM_CXVIRTUALSCREEN)-lxx);
    ldyy=GetSystemMetrics(SM_CYVIRTUALSCREEN);
    if(ldxx+lxx>ldx) value=2; //set 2 ecran
   
    //////////////////////

    return value;
}




int APIENTRY  WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
     // TODO: Place code here.
    MSG msg;
    HACCEL hAccelTable;

   

   

    // Initialize global strings
    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadString(hInstance, IDC_ECRAN, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);

    // Perform application initialization:
    if (!InitInstance (hInstance, nCmdShow))
    {
        return FALSE;
    }

    hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_ECRAN);


    chk=Dual(x, y, xx, yy,   dx,dy, dxx,dyy);
     
/////test
    if(chk>1) {
              SetWindowPos(Main,HWND_TOPMOST,x,y,xx,yy,SWP_SHOWWINDOW);
              say(Main,"Ecran 1");

              SetWindowPos(Main,HWND_TOPMOST,dx, dy, dxx, dyy,SWP_SHOWWINDOW);
              say(Main,"ecran 2");
         
 
              SetWindowPos(Main,HWND_TOPMOST,x,  y, dxx+xx, dyy,SWP_SHOWWINDOW);
              say(Main,"ecran 1 & 2");
    }
     else { //1 ecran gros
        SetWindowPos(Main,HWND_TOPMOST,x,  y, dxx+xx, dyy,SWP_SHOWWINDOW);

      }
     
////////////////////////////////////////////////////////////


    

    // Pict(0,0,800,600);
    //Pict(dx, dy, dxx, dyy);

   

 
    while (GetMessage(&msg, NULL, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 

   



//    PostMessage(View,WM_CLOSE,0,0);
    //PostMessage(View,WM_QUIT,0,0);



    return (int) msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    This function and its usage are only necessary if you want this code
//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
//    function that was added to Windows 95. It is important to call this function
//    so that the application will get 'well formed' small icons associated
//    with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

    wcex.style            = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    wcex.cbClsExtra        = 0;
    wcex.cbWndExtra        = 0;
    wcex.hInstance        = hInstance;
    wcex.hIcon            = LoadIcon(hInstance, (LPCTSTR)IDI_ECRAN);
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    = (HBRUSH) GetStockObject(BLACK_BRUSH);
    wcex.lpszMenuName    = (LPCTSTR)IDC_ECRAN;
    wcex.lpszClassName    = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

    return RegisterClassEx(&wcex);
}

//
//   FUNCTION: InitInstance(HANDLE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle,WS_POPUP,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd) return FALSE;

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);


   Main=(hWnd);

   return TRUE;
}

//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND    - process the application menu
//  WM_PAINT    - Paint the main window
//  WM_DESTROY    - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;

    switch (message)
    {

     case WM_INITDIALOG:
     case WM_CREATE:
       
 
        return TRUE;


    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);


        // Parse the menu selections:
        switch (wmId)
        {
        case IDM_ABOUT:
           
           
           
            break;

        case IDM_EXIT:
           
            //CPfree(View);
           
            break;
       
                }
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        // TODO: Add any drawing code here...
        EndPaint(hWnd, &ps);
        break;
    //case WM_DESTROY:
         //DestroyWindow(hWnd);
        // PostQuitMessage(0);
        //break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// Message handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_INITDIALOG:
   
        return TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return TRUE;
        }
        break;
    }
    return FALSE;
}

lundi 16 juin 2008 à 14:18:47 | Re : Gérer un programme devant tourner sur 1 PC avec 2 écrans ???

nascimo

Merci pour vos réponses ...
Je reçois le second écran bientôt, je testerais aussitôt ...


Cette discussion est classée dans : programme, pc, gérer, écrans, tourner


Répondre à ce message

Sujets en rapport avec ce message

DialogBox qui ne s'affiche que sur mon PC [ par CyberP ] J'ai créé un programme dont l'interface est uniquement composée d'une dialogbox. Mais quand je donne le programme à quelqu'un d'autre sur le net (je n Faire tourner un .exe indéfiniment [ par julien20vt ] Je fais un programme qui doit rester actif constamment sur un PC:Il ne doit rien faire du tout sauf en cas de remontée d'evenements ou il a différente Encore DirectX... Comment gérer le ALT-TAB ? [ par ProGamer ] Oui, comment faire ? Je veux permettre aux utilisateurs de mon programme de ALT-TABer (haha). Seulement, il y a une histoire de surfaces et de périphé Démarage de windows [ par Fuckly94 ] Bonjour tout le monde,j'aimerais savoir tous les myen de lancer une application au démarage de windows.Je m'explike:Mon frére lance pa mal de connerie Comment redemarrer le PC avec un programme DOS sur disquette [ par Ethylotek ] voici la fin de mon prog    printf("/***********************************************/\n");    printf("/* Faire tourner un programme en tache de fond [ par Pingouin57 ] Salut tout le monde, Je vous explique mon projet : j'aimerai enfait faire un programme qui envoi des données sur le port parallèle dès qu'on appuie Gérer des images en dynamique [ par Forthian ] Alors cette fois j'ai besoin de tout votre bon sens...Mes profs m'ont chier un truc, j'ai rien capté, eux non plus mais jsuis censé le faire quand mê Vitesse / WinSock [ par RLBDC ] YopYop tlm !Bien, voilà , étant encore un peu "newbie" dans le C++ , je me suis lancé dans la programmation d'un jeu de pong basique en réseau .Mon pr programme echoué sur un autre pc [ par shadow1779 ] Bonjour,J'ai un probleme sous windows avec tout les programmes consoles que je crée, si moi je les lancent il n'y a aucun probleme, mais si je les tra probleme de compatibiliter entre machine :s [ par ben92600 ] salut a tous. donc mon probleme est que j'ai un programme a realiser en C et qui doit marcher sur pc , sun et alfa . or mon programme marche sur pc ma


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales