| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5728 人关注过本帖
标题:关于人机交互的问题。
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
去试了下,原来这样可以。

LPCWSTR  lpcwStr[100] = {L"hello!"};

for ( i = 0; i < 6; i++ )
        TextOut(hdc, 60, 30, lpcwStr[i], 20);
还有吗有其他的方法。

梅尚程荀
马谭杨奚







                                                       
2012-02-15 17:33
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:0 
工程改为多字节 不要用unicode 如果是vs 右键工程属性里

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-15 18:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
嗯, 好了。

TextOut(hdc, 0, 200,"hello!", 6);
BitBlt(hdc,4, 6, 90, 80, hdcSrc, 50, 60, rop);
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-02-15 20:04
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:0 
以下是引用有容就大在2012-2-15 20:04:05的发言:

嗯, 好了。

TextOut(hdc, 0, 200,"hello!", 6);
BitBlt(hdc,4, 6, 90, 80, hdcSrc, 50, 60, rop);
学学原理性的东西吧 要不时间全浪费在排错上了
了解原理了排错时间会很少

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-15 21:26
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:0 
现在积累这些知识微乎其微 关键先掌握学习方法 遇到一个新技术如何能快速的上手 如何的学习它的框架

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-15 21:28
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
下面这段代码是我看孙鑫老师视频时跟着他敲的。
程序代码:
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WidSunProc();

int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)

{
    WNDCLASS  wndcls;
    wndcls.cbClsExtra = 0;
    wndcls.cbWndExtra = 0;
    wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);
    wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);
    wndcls.hInstance = hInstance;
    wndcls.lpfnWndProc = WidSunProc;     // 为什么这里有错!       
    wndcls.lpszClassName = "weixin2003";
    wndcls.lpszMenuName = NULL;
    wndcls.style = CS_HREDRAW | CS_VREDRAW;

    RegisterClass(&wndcls);

    HWND  hwnd;
    hwnd = CreateWindow("weixin2003", "北京维新技术培训中心", WS_OVERLAPPEDWINDOW,
                         0, 0, 600, 800, NULL, NULL, hInstance, NULL);

    ShowWindow(hwnd, SW_SHOWNORMAL);
    UpdateWindow(hwnd);

    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

LRESULT CALLBACK WidSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
   switch(uMsg)
   {
   case  WM_CHAR:
       char szChar[20];
       sprintf(szChar, "char is %d", wParam);
       MessageBox(hwnd, szChar, "weixin", 0);
       break;
   case WM_LBUTTONDOWN:
       MessageBox(hwnd, "Mouse Clicked!", "weixin", 0);
       HDC hdc;
       hdc = GetDC(hwnd);
       TextOut(hdc, 0, 50, "计算机编程语言培训", strlen("计算机编程语言培训"));
       ReleaseDC(hwnd, hdc);
       break;
   case WM_PAINT:
      
       PAINTSTRUCT ps;
       hdc = BeginPaint(hwnd, &ps);   
       TextOut(hdc, 0, 0, " 维新培训", strlen("维新培训"));
       EndPaint(hwnd, &ps);
       break;
   case    WM_CLOSE:
       if(IDYES == MessageBox(hwnd, "是否真的结束?", "weixin", MB_YESNO))
       {
            DestroyWindow(hwnd);
       }
       break;
   case WM_DESTROY:
       PostQuitMessage(0);
       break;
   default:
       return  DefWindowProc(hwnd, uMsg, wParam, lParam);
   }
  
   return 0;
}
这是他敲代码的视频截图:
图片附件: 游客没有浏览图片的权限,请 登录注册
回调函数孙鑫老师都取名为:WidSunProc.
他敲完后能运行,但是我编译就有一处错误,貌似我和他的代码没不同啊。
具体错误是 D:\C语言教程\lesson1\Windows\WinMain.cpp(22) : error C2440: '=' : cannot convert from 'long (__stdcall *)(void)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
什么原因?
我把WinSunProc全改成WndProc也一样.


[ 本帖最后由 有容就大 于 2012-2-15 21:35 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-02-15 21:29
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用闲出屁在2012-2-15 21:28:15的发言:

现在积累这些知识微乎其微 关键先掌握学习方法 遇到一个新技术如何能快速的上手 如何的学习它的框架
嗯,我在看视频了,收获蛮大。

梅尚程荀
马谭杨奚







                                                       
2012-02-15 21:30
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:0 
以下是引用有容就大在2012-2-15 21:30:48的发言:

嗯,我在看视频了,收获蛮大。
好 加油 学WINDOWS开发 肯定要多看MSDN

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-15 22:06
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:0 
以下是引用有容就大在2012-2-15 21:29:55的发言:

下面这段代码是我看孙鑫老师视频时跟着他敲的。#include  
#include  
 
LRESULT CALLBACK WidSunProc();
 
int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
 
{
    WNDCLASS  wndcls;
    wndcls.cbClsExtra = 0;
    wndcls.cbWndExtra = 0;
    wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);
    wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);
    wndcls.hInstance = hInstance;
    wndcls.lpfnWndProc = WidSunProc;     // 为什么这里有错!        
    wndcls.lpszClassName = "weixin2003";
    wndcls.lpszMenuName = NULL;
    wndcls.style = CS_HREDRAW | CS_VREDRAW;
 
    RegisterClass(&wndcls);
 
    HWND  hwnd;
    hwnd = CreateWindow("weixin2003", "北京维新技术培训中心", WS_OVERLAPPEDWINDOW,
                         0, 0, 600, 800, NULL, NULL, hInstance, NULL);
 
    ShowWindow(hwnd, SW_SHOWNORMAL);
    UpdateWindow(hwnd);
 
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return 0;
}
 
LRESULT CALLBACK WidSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
   switch(uMsg)
   {
   case  WM_CHAR:
       char szChar[20];
       sprintf(szChar, "char is %d", wParam);
       MessageBox(hwnd, szChar, "weixin", 0);
       break;
   case WM_LBUTTONDOWN:
       MessageBox(hwnd, "Mouse Clicked!", "weixin", 0);
       HDC hdc;
       hdc = GetDC(hwnd);
       TextOut(hdc, 0, 50, "计算机编程语言培训", strlen("计算机编程语言培训"));
       ReleaseDC(hwnd, hdc);
       break;
   case WM_PAINT:
      
       PAINTSTRUCT ps;
       hdc = BeginPaint(hwnd, &ps);   
       TextOut(hdc, 0, 0, " 维新培训", strlen("维新培训"));
       EndPaint(hwnd, &ps);
       break;
   case    WM_CLOSE:
       if(IDYES == MessageBox(hwnd, "是否真的结束?", "weixin", MB_YESNO))
       {
            DestroyWindow(hwnd);
       }
       break;
   case WM_DESTROY:
       PostQuitMessage(0);
       break;
   default:
       return  DefWindowProc(hwnd, uMsg, wParam, lParam);
   }
   
   return 0;
}
这是他敲代码的视频截图: 回调函数孙鑫老师都取名为:WidSunProc.
他敲完后能运行,但是我编译就有一处错误,貌似我和他的代码没不同啊。
具体错误是 D:\C语言教程\lesson1\Windows\WinMain.cpp(22) : error C2440: '=' : cannot convert from 'long (__stdcall *)(void)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
什么原因?
我把WinSunProc全改成WndProc也一样.
那个视频有源码下载啊

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-15 22:06
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 79楼 闲出屁
不是下载的代码,是视频里孙鑫老师一行行敲出来的,边敲边解释,我就跟着他敲。您帮看下
wndcls.lpfnWndProc = WidSunProc;这行的错误是什么原因,我看不懂那一堆啊。视频上也是这么敲的为什么他能运行我不能,难道和系统设置有关,__stdcall?

梅尚程荀
马谭杨奚







                                                       
2012-02-15 22:15
快速回复:关于人机交互的问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019537 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved