Страница: 1 | 
		
		 
			   
			 
			 Приветствую всех. Хочу задать вопрос про SendMessage. Короче, такая вещь: Callback, в нём принимаю сообщение CDN_SELCHANGE - изменение выбраного файла в CommonDialog. Вот здесь в буфере должно вернуться имя файла, на который кликнули. Но почему-то возвращается строка, в которой все CHR$(0) заменены на CHR$(32). Кто знает, почему не возвращается имя файла? 
			 
			  Была и у меня такая проблема. Я помнится её даже решил. Вот только решение не помню где.  По памяти могу посоветовать отправлять не строку, а адрес байтового массива. Ну так попробуй Buff = String(100, Chr$(32)) Можно и так: Buff = Space$(100) Только не будет всё равно функция с VB-шной строкой работать. Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: SendMessage
     
    
Добавлено: 17.04.04 09:45
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     cresta
 cresta
      
       
  
 
    
    Dim hdr As NMHDR
    Dim Buff As String, ret As Long
    Select Case uMsg
        Case WM_NOTIFY
            Call CopyMemory(hdr, ByVal lParam, Len(hdr))
            Select Case hdr.Code
                Case CDN_SELCHANGE
                    Buff = String(100, Chr$(0))
                    ret = SendMessage(ByVal hwnd, CDM_GETSPEC, Len(Buff), Buff)
                    Debug.Print ret ' возвращает 0, должно быть длина возвращаемого буфера
                    Debug.Print Buff ' в буфере - строка из 100 пробелов
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 5
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: @CyRax  PTR
 @CyRax  PTR







ICQ: 204447456 
Вопросов: 28
Ответов: 664
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  18.04.04 04:39
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: cresta
 cresta


Вопросов: 117
Ответов: 1538
      
 Профиль |  | #2
       
Добавлено:  18.04.04 07:44
       
    
       
  
Да я пытался передавать указатель на строку, но программа тогда вылетает. Хотя я тоже обошел это дело. Через EnumChildeWindow получаю интересующие меня окна имени выбранного файла и выбранного расширения и далее SetWindowText в имя файла при изменении текста в окне расширения. Объехал на пьяной козе 
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: LamerOnLine
 LamerOnLine



ICQ: 334781088 
Вопросов: 108
Ответов: 2822
      
 Профиль |  | #3
       
Добавлено:  19.04.04 08:56
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: @CyRax  PTR
 @CyRax  PTR







ICQ: 204447456 
Вопросов: 28
Ответов: 664
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  20.04.04 04:40
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: cresta
 cresta


Вопросов: 117
Ответов: 1538
      
 Профиль |  | #5
       
Добавлено:  20.04.04 12:59
       
    
       
  
Да пробовал и CHR$(32) и CHR$(0) - разницы нет